stage4/generate_c/il_code_gen.c
author lbessard
Mon, 19 Jan 2009 17:06:22 +0100
changeset 169 bea932bc60b0
parent 165 83963465b773
child 199 b075f28ec081
permissions -rw-r--r--
Bug when function with unconnected input fixed
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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
    47
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
    48
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
    49
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
    50
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
    51
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
    52
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    53
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    54
                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
    55
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    56
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    62
        }
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
    }/*function_real_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    65
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    68
 *REAL_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    69
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    70
    case function_real_to_lint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    73
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    74
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    75
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    76
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    79
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    80
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
    81
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
    82
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
    83
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
    84
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
    85
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
    86
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    87
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    88
                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
    89
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    90
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    93
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    96
        }
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
    }/*function_real_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    99
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   100
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   101
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   102
 *REAL_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   103
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   104
    case function_real_to_dint :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   107
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   108
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   109
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   110
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   113
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   114
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   115
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   116
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   117
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   118
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   119
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   120
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   121
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   122
                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
   123
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   132
    }/*function_real_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   133
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   134
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   135
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   136
 *REAL_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   137
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   138
    case function_real_to_date :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   144
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   145
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   146
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   147
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   148
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   149
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
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
                function_name = (symbol_c*)(new pragma_c("__real_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   153
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   154
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   155
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   156
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   157
                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
   158
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   159
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   164
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   167
    }/*function_real_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   168
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   169
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   170
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   171
 *REAL_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   172
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   173
    case function_real_to_dword :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   176
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   177
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   178
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   179
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   182
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   183
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   184
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   185
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   186
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   187
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   188
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   189
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   190
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   191
                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
   192
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   193
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   194
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   198
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   201
    }/*function_real_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   202
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   203
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
 *REAL_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   206
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   207
    case function_real_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   208
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   209
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   210
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   211
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   212
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   213
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   216
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   217
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   218
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   219
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   220
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   221
                function_name = (symbol_c*)(new pragma_c("__real_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   222
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   223
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   224
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   225
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   226
                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
   227
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   228
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   229
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   230
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   233
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   234
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   235
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   236
    }/*function_real_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   237
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   238
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   239
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   240
 *REAL_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   241
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   242
    case function_real_to_tod :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   248
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   251
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   252
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   253
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   254
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   255
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   256
                function_name = (symbol_c*)(new pragma_c("__real_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   257
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   258
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   259
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   260
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   261
                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
   262
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   263
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   264
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   265
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   266
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   267
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   268
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   271
    }/*function_real_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   272
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   273
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   274
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   275
 *REAL_TO_UDINT
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
    case function_real_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   278
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   279
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   280
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   281
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   282
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   283
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   286
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   287
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   288
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   289
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   290
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   291
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   292
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   293
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   294
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   295
                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
   296
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   297
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   298
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   299
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   300
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   301
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   302
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   303
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   304
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   305
    }/*function_real_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   306
    break;
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
 *REAL_TO_WORD
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
    case function_real_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   312
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   313
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   317
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   318
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   319
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   320
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   321
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   322
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   323
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   324
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   325
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   326
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   327
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   328
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   329
                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
   330
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   331
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   332
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   333
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   334
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   335
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   336
            ERROR;
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
    }/*function_real_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   340
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   341
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
 *REAL_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   344
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   345
    case function_real_to_string :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   348
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   351
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   352
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   353
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   354
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   355
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   356
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   359
                function_name = (symbol_c*)(new pragma_c("__real_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   360
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   361
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   362
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   363
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   364
                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
   365
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   366
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   367
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   368
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   372
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   373
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   374
    }/*function_real_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   375
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   376
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   377
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   378
 *REAL_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   379
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   380
    case function_real_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   381
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   382
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   383
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   386
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   387
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   388
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   389
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   390
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   391
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   392
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   393
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   394
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   395
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   396
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   397
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   398
                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
   399
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   400
                break;
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   406
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   407
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   408
    }/*function_real_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   409
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   410
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
 *REAL_TO_UINT
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
    case function_real_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   415
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   416
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   417
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   418
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   419
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   420
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   421
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   422
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   423
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   424
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   425
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   426
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   427
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   428
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   429
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   430
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   431
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   432
                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
   433
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   434
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   438
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   439
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   442
    }/*function_real_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   443
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   446
 *REAL_TO_LREAL
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
    case function_real_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   449
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   450
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   451
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   452
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   453
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   454
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   457
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   458
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   459
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   460
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   461
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   462
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   463
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   464
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   465
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   466
                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
   467
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   468
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   469
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   470
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   471
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   472
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   473
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   474
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   475
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   476
    }/*function_real_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   477
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   478
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   479
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   480
 *REAL_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   481
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   482
    case function_real_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   483
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   484
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   485
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   486
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   487
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   488
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   489
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   490
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   491
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   492
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   493
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   494
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   495
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   496
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   497
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   498
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   499
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   500
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   501
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   502
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   503
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   504
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   505
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   506
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   507
            ERROR;
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
    }/*function_real_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   511
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   514
 *REAL_TO_USINT
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
    case function_real_to_usint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   519
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   520
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   521
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   522
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   523
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   524
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   525
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   526
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   527
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   528
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   529
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   530
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   531
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   532
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   533
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   534
                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
   535
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   536
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   537
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   538
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   539
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   542
        }
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
    }/*function_real_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   545
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   548
 *REAL_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   549
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   550
    case function_real_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   551
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   552
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   553
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   556
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   559
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   560
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   561
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   562
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   563
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   564
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   565
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   566
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   567
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   568
                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
   569
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   570
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   573
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   574
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   575
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   576
        }
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
    }/*function_real_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   579
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   582
 *REAL_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   583
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   584
    case function_real_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   585
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   586
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   590
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   593
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   594
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   595
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   596
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   597
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   598
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   599
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   600
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   601
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   602
                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
   603
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   604
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   605
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   606
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   607
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   608
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   609
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   610
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   611
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   612
    }/*function_real_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   613
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   614
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   615
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   616
 *REAL_TO_TIME
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
    case function_real_to_time :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   621
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   622
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   623
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   624
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   625
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   626
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   627
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   628
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   629
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   630
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   631
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   632
                function_name = (symbol_c*)(new pragma_c("__real_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   633
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   634
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   635
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   636
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   637
                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
   638
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   639
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   645
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   646
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   647
    }/*function_real_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   648
    break;
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
 *REAL_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   652
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   653
    case function_real_to_int :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   656
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   659
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   662
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   663
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   664
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   665
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   666
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   667
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   668
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   669
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   670
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   671
                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
   672
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   673
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   676
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   677
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   678
            ERROR;
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
    }/*function_real_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   682
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   683
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   684
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   685
 *SINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   686
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   687
    case function_sint_to_real :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   690
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   693
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   694
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   695
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   696
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   697
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   698
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   699
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   700
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   701
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   702
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   703
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   704
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   705
                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
   706
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   707
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   708
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   709
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   710
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   711
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   712
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   715
    }/*function_sint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   716
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   717
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   718
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   719
 *SINT_TO_LINT
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
    case function_sint_to_lint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   726
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   727
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   728
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   729
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   730
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   731
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   732
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   733
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   734
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   735
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   736
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   737
                  IN_type_symbol = last_type_symbol;
149
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::lint_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_lint*/
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_DINT
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_dint :
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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   766
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   767
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   768
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   769
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   770
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   771
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   772
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   773
                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
   774
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   775
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   781
        }
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
    }/*function_sint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   784
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   787
 *SINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   788
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   789
    case function_sint_to_date :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   792
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   795
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   796
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   797
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   798
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   799
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   800
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   801
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   802
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   803
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   804
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   805
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   806
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   807
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   808
                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
   809
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   810
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   813
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   814
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   815
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   816
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   817
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   818
    }/*function_sint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   819
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   820
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   821
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   822
 *SINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   823
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   824
    case function_sint_to_dword :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   827
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   830
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   833
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   834
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   835
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   836
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   837
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   838
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   839
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   840
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   841
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   842
                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
   843
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   844
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   845
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   849
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   850
        }
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
    }/*function_sint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   853
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   856
 *SINT_TO_DT
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
    case function_sint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   859
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   860
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   861
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   862
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   863
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   864
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   865
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   866
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   867
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   868
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   869
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   870
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   871
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   872
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   873
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   874
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   875
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   876
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   877
                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
   878
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   879
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   884
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   887
    }/*function_sint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   888
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   889
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   890
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   891
 *SINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   892
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   893
    case function_sint_to_tod :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   896
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   897
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   898
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   899
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   902
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   903
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   904
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   907
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   908
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   909
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   910
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   911
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   912
                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
   913
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   914
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   918
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   919
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   920
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   921
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   922
    }/*function_sint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   923
    break;
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
 *SINT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   927
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   928
    case function_sint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   929
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   930
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   934
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   935
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   936
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   937
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   938
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   939
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   940
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   941
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   942
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   943
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   944
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   945
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   946
                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
   947
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   948
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   949
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   950
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   953
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   956
    }/*function_sint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   957
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   958
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   959
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   960
 *SINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   961
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   962
    case function_sint_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   965
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   966
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   967
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   968
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   969
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   970
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   971
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   972
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   973
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   974
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   975
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   976
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   977
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
   978
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   979
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   980
                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
   981
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   982
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   983
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   984
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   987
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   990
    }/*function_sint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   991
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   992
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
 *SINT_TO_STRING
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
    case function_sint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   997
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   998
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   999
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1000
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1001
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1002
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1005
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1006
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1007
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1008
            {
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
                function_name = (symbol_c*)(new pragma_c("__sint_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1011
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1012
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1013
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1014
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1015
                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
  1016
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1017
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1021
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1022
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1023
        }
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
    }/*function_sint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1026
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1029
 *SINT_TO_LWORD
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
    case function_sint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1032
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1033
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1036
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1037
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1040
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1041
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1042
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1043
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1044
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1045
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1046
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1047
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1048
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1049
                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
  1050
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1051
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1052
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1053
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1054
            
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
            ERROR;
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
    }/*function_sint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1060
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1063
 *SINT_TO_UINT
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
    case function_sint_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1066
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1067
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1068
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1069
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1070
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1071
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1074
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1075
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1076
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1077
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1078
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1079
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1080
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1081
                  IN_type_symbol = last_type_symbol;
149
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::uint_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_uint*/
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_LREAL
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_lreal :
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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1110
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1111
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1112
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1113
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1114
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1115
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1116
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1117
                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
  1118
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1119
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1125
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1126
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1127
    }/*function_sint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1128
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1129
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1130
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1131
 *SINT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1132
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1133
    case function_sint_to_byte :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1136
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1139
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1142
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1143
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1144
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1145
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1146
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1147
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1148
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1149
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1150
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1151
                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
  1152
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1153
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1156
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1157
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1158
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1159
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1160
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1161
    }/*function_sint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1162
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1163
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1164
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1165
 *SINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1166
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1167
    case function_sint_to_usint :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1170
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1173
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1176
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1177
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1178
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1179
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1180
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1181
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1182
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1183
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1184
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1185
                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
  1186
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1187
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1188
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1192
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1193
        }
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
    }/*function_sint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1196
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1197
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1198
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1199
 *SINT_TO_ULINT
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
    case function_sint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1202
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1203
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1204
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1205
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1206
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1207
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1208
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1209
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1210
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1211
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1212
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1213
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1214
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1215
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1216
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1217
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1218
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1219
                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
  1220
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1221
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1222
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1223
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1224
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1225
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1226
            ERROR;
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
    }/*function_sint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1230
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1233
 *SINT_TO_BOOL
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
    case function_sint_to_bool :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1238
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1239
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1240
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1241
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1242
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1243
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1244
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1245
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1246
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1247
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1248
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1249
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1250
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1251
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1252
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1253
                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
  1254
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1255
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1261
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1262
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1263
    }/*function_sint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1264
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1267
 *SINT_TO_TIME
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
    case function_sint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1270
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1271
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1272
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1275
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1278
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1279
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1280
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1281
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1284
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1285
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1286
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1287
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1288
                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
  1289
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1290
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1291
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1292
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1295
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1296
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1297
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1298
    }/*function_sint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1299
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1300
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1301
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1302
 *SINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1303
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1304
    case function_sint_to_int :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1309
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1310
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1311
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1312
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1313
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1314
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1315
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1316
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1317
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1318
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1319
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1320
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1321
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1322
                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
  1323
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1324
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1325
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1326
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1327
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1328
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1329
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1332
    }/*function_sint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1333
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1334
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1335
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1336
 *LINT_TO_REAL
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
    case function_lint_to_real :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1344
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1347
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1348
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1349
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1350
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1351
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1352
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1353
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1354
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1355
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1356
                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
  1357
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1358
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1364
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1365
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1366
    }/*function_lint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1367
    break;
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
 *LINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1371
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1372
    case function_lint_to_sint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1375
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1378
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1381
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1382
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1383
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1384
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1385
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1386
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1387
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1388
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1389
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1390
                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
  1391
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1392
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1393
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1394
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1395
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1396
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1397
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1398
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1399
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1400
    }/*function_lint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1401
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1402
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1403
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1404
 *LINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1405
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1406
    case function_lint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1407
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1408
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1409
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1410
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1411
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1412
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1415
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1416
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1417
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1418
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1419
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1420
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1421
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1422
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1423
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1424
                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
  1425
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1426
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1427
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1428
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1429
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1430
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1431
            ERROR;
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
    }/*function_lint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1435
    break;
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
 *LINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1439
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1440
    case function_lint_to_date :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1445
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1446
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1447
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1448
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1449
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1450
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1451
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1452
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1453
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1454
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1455
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1456
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1457
                  IN_type_symbol = last_type_symbol;
149
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::date_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_date*/
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_DWORD
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_dword :
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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1486
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1487
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1488
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1489
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1490
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1491
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1492
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1493
                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
  1494
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1495
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1501
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1502
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1503
    }/*function_lint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1504
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1507
 *LINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1508
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1509
    case function_lint_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1512
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1513
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1514
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1515
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1518
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1519
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1520
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1521
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1522
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1523
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1524
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1525
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1526
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1527
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1528
                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
  1529
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1530
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1533
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1536
        }
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
    }/*function_lint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1539
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1540
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
 *LINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1543
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1544
    case function_lint_to_tod :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1547
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1550
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1553
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1554
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1555
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1559
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1560
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1561
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1562
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1563
                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
  1564
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1565
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1570
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1571
        }
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
    }/*function_lint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1574
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1575
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1576
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1577
 *LINT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1578
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1579
    case function_lint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1580
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1581
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1584
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1585
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1586
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1587
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1588
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1589
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1590
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1591
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1592
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1593
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1594
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1595
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1596
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1597
                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
  1598
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1599
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1600
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1601
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1602
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1605
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1606
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1607
    }/*function_lint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1608
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1609
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
 *LINT_TO_WORD
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
    case function_lint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1614
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1615
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1616
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1617
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1618
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1619
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1622
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1623
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1624
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1625
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1626
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1627
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1628
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1629
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1630
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1631
                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
  1632
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1633
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1637
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1638
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1639
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1640
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1641
    }/*function_lint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1642
    break;
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
 *LINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1646
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1647
    case function_lint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1648
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1649
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1653
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1654
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1655
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1656
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1657
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1658
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1659
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1660
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1661
                function_name = (symbol_c*)(new pragma_c("__sint_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1662
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1663
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1664
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1665
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1666
                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
  1667
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1668
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1671
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1672
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1673
            ERROR;
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
    }/*function_lint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1677
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1678
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1679
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1680
 *LINT_TO_LWORD
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
    case function_lint_to_lword :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1688
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1691
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1692
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1693
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1694
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1695
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1696
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1697
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1698
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1699
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1700
                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
  1701
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1702
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1708
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1709
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1710
    }/*function_lint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1711
    break;
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
 *LINT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1715
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1716
    case function_lint_to_uint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1719
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1720
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1721
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1722
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1725
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1726
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1727
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1728
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1729
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1730
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1731
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1732
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1733
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1734
                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
  1735
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1736
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1739
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1740
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1741
            ERROR;
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
    }/*function_lint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1745
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1746
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
 *LINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1749
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1750
    case function_lint_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1753
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1754
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1755
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1756
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1757
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1758
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1759
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1760
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1761
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1762
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1763
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1764
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1765
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1766
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1767
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1768
                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
  1769
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1770
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1771
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1772
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1773
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1774
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1775
            ERROR;
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
    }/*function_lint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1779
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1782
 *LINT_TO_BYTE
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
    case function_lint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1785
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1786
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1787
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1790
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1793
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1794
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1795
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1796
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1797
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1798
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1799
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1800
                  IN_type_symbol = last_type_symbol;
149
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::byte_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_byte*/
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
 *LINT_TO_USINT
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_lint_to_usint :
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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1829
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1830
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1831
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1832
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1833
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1834
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1835
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1836
                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
  1837
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1838
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1844
        }
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
    }/*function_lint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1847
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1850
 *LINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1851
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1852
    case function_lint_to_ulint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1855
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1856
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1857
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1858
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1861
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1862
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1863
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1864
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1865
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1866
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1867
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1868
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1869
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1870
                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
  1871
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1872
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1875
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1878
        }
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
    }/*function_lint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1881
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1882
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1883
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1884
 *LINT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1885
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1886
    case function_lint_to_bool :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1889
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1890
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1891
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1892
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1895
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1896
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1897
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1898
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1899
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1900
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1901
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1902
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1903
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1904
                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
  1905
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1914
    }/*function_lint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1915
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1916
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1917
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1918
 *LINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1919
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1920
    case function_lint_to_time :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1926
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1927
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1928
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1929
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1930
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1931
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1935
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1936
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1937
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1938
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1939
                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
  1940
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1941
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1946
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1949
    }/*function_lint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1950
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1951
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1952
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1953
 *LINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1954
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1955
    case function_lint_to_int :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1958
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1959
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1960
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1961
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1964
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1965
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1966
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1967
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1968
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1969
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1970
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  1971
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1972
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1973
                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
  1974
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1975
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1976
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1980
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1983
    }/*function_lint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1984
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1985
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
 *DINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1988
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1989
    case function_dint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1990
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1991
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1992
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1993
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1994
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1995
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1998
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1999
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2000
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2001
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2002
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2003
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2004
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2005
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2006
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2007
                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
  2008
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2009
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2012
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2015
        }
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
    }/*function_dint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2018
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2021
 *DINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2022
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2023
    case function_dint_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2024
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2025
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2029
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2032
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2033
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2034
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2035
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2036
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2037
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2038
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2039
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2040
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2041
                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
  2042
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2043
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2044
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2047
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2048
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2049
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2050
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2051
    }/*function_dint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2052
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2053
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2054
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2055
 *DINT_TO_LINT
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
    case function_dint_to_lint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2060
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2063
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2064
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2065
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2066
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2067
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2068
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2069
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2070
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2071
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2072
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2073
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2074
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2075
                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
  2076
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2077
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2078
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2083
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2084
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2085
    }/*function_dint_to_lint*/
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
 *DINT_TO_DATE
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
    case function_dint_to_date :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2094
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2095
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2096
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2097
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2098
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2099
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2100
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2101
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2102
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2106
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2107
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2108
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2109
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2110
                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
  2111
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2112
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2115
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2116
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2117
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2118
        }
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
    }/*function_dint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2121
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2124
 *DINT_TO_DWORD
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
    case function_dint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2127
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2128
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2131
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2132
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2135
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2136
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2137
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2138
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2139
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2140
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2141
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2142
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2143
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2144
                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
  2145
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2146
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2147
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2148
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2149
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2150
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2151
            ERROR;
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
    }/*function_dint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2155
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2158
 *DINT_TO_DT
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
    case function_dint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2161
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2162
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2163
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2166
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2169
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2170
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2171
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2172
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2175
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2176
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2177
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2178
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2179
                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
  2180
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2181
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2186
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2187
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2188
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2189
    }/*function_dint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2190
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2193
 *DINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2194
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2195
    case function_dint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2196
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2197
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2200
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2201
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2202
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2203
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2204
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2205
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2206
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2209
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2210
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2211
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2212
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2213
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2214
                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
  2215
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2216
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2220
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2221
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2224
    }/*function_dint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2225
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2228
 *DINT_TO_UDINT
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
    case function_dint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2231
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2232
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2233
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2234
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2235
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2236
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2239
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2240
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2241
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2242
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2243
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2244
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2245
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2246
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2247
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2248
                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
  2249
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2250
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2251
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2252
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2253
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2254
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2255
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2256
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2257
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2258
    }/*function_dint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2259
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2260
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2261
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2262
 *DINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2263
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2264
    case function_dint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2265
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2266
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2267
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2268
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2269
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2270
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2271
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2272
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2273
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2274
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2275
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2276
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2277
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2278
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2279
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2280
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2281
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2282
                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
  2283
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2284
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2285
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2286
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2287
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2288
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2289
            ERROR;
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
    }/*function_dint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2293
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2296
 *DINT_TO_STRING
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
    case function_dint_to_string :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2301
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2302
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2303
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2304
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2305
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2306
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2307
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2308
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2309
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
149
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_name = (symbol_c*)(new pragma_c("__sint_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2313
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2314
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2315
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2316
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2317
                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
  2318
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2319
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2320
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2321
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2322
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2323
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2324
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2327
    }/*function_dint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2328
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2329
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2330
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2331
 *DINT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2332
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2333
    case function_dint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2334
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2335
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2339
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2340
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2341
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2342
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2343
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2344
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2345
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2346
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2347
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2348
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2349
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2350
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2351
                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
  2352
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2353
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2354
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2355
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2356
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2357
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2358
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2359
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2360
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2361
    }/*function_dint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2362
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2363
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2364
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2365
 *DINT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2366
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2367
    case function_dint_to_uint :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2373
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2376
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2377
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2378
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2379
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2380
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2381
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2382
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2383
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2384
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2385
                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
  2386
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2387
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2388
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2389
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2390
            
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
            ERROR;
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
    }/*function_dint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2396
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2397
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2398
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2399
 *DINT_TO_LREAL
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
    case function_dint_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2407
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2410
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2411
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2412
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2413
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2414
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2415
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2416
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2417
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2418
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2419
                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
  2420
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2421
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2427
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2428
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2429
    }/*function_dint_to_lreal*/
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
 *DINT_TO_BYTE
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
    case function_dint_to_byte :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2438
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2439
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2440
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2441
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2442
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2443
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2444
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2445
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2446
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2447
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2448
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2449
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2450
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2451
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2452
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2453
                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
  2454
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2455
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2459
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2460
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2461
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2462
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2463
    }/*function_dint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2464
    break;
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
 *DINT_TO_USINT
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
    case function_dint_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2470
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2471
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2475
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2476
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2477
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2478
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2479
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2480
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2481
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2482
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2483
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2484
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2485
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2486
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2487
                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
  2488
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2489
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2490
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2491
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2492
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2493
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2494
            ERROR;
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
    }/*function_dint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2498
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2499
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2500
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2501
 *DINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2502
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2503
    case function_dint_to_ulint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2506
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2509
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2510
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2511
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2512
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2513
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2514
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2515
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2516
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2517
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2518
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2519
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2520
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2521
                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
  2522
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2523
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2524
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2525
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2526
            
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
            ERROR;
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
    }/*function_dint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2532
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2535
 *DINT_TO_BOOL
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
    case function_dint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2538
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2539
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2540
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2543
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2546
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2547
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2548
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2549
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2550
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2551
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2552
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2553
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2554
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2555
                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
  2556
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2557
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2558
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2559
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2563
        }
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
    }/*function_dint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2566
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2567
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
 *DINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2570
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2571
    case function_dint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2572
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2573
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2574
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2577
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2578
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2579
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2580
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2581
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2582
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2583
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2584
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2585
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2586
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2587
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2588
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2589
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2590
                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
  2591
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2592
                break;
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2598
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2599
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2600
    }/*function_dint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2601
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2602
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2603
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2604
 *DINT_TO_INT
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
    case function_dint_to_int :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2609
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2610
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2611
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2612
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2613
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2614
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2615
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2616
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2617
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2618
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2619
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2620
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2621
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2622
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2623
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2624
                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
  2625
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2626
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2627
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2631
            ERROR;
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
    }/*function_dint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2635
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2636
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
 *DATE_TO_REAL
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
    case function_date_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2641
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2642
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2643
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2644
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2645
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2646
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2647
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2648
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2649
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2650
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2651
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2652
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2653
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2654
                function_name = (symbol_c*)(new pragma_c("__time_to_real"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2655
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2656
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2657
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2658
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2659
                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
  2660
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2661
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2662
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2663
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2664
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2665
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2666
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2669
    }/*function_date_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2670
    break;
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
 *DATE_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2674
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2675
    case function_date_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2676
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2677
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2680
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2681
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2682
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2683
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2684
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2685
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2686
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2690
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2691
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2692
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2693
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2694
                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
  2695
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2696
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2701
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2702
        }
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
    }/*function_date_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2705
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2706
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
 *DATE_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2709
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2710
    case function_date_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2711
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2712
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2713
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2714
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2715
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2716
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2717
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2718
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2719
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2720
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2721
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2722
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2723
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2724
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2725
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2726
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2727
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2728
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2729
                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
  2730
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2731
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2732
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2737
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2738
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2739
    }/*function_date_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2740
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2741
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
 *DATE_TO_DINT
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
    case function_date_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2746
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2747
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2748
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2749
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2750
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2751
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2754
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2755
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2756
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2759
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2760
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2761
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2762
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2763
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2764
                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
  2765
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2766
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2770
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2771
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2772
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2773
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2774
    }/*function_date_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2775
    break;
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
 *DATE_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2779
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2780
    case function_date_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2781
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2782
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2786
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2787
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2788
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2789
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2790
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2791
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2795
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2796
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2797
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2798
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2799
                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
  2800
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2801
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2802
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2805
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2806
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2807
        }
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
    }/*function_date_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2810
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2811
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2812
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2813
 *DATE_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2814
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2815
    case function_date_to_udint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2820
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2821
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2822
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2823
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2824
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2825
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2826
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2829
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2830
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2831
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2832
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2833
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2834
                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
  2835
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2836
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2837
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2842
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2843
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2844
    }/*function_date_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2845
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2846
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2847
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2848
 *DATE_TO_WORD
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
    case function_date_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2851
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2852
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2855
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2856
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2859
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2860
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2861
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2862
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2863
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2864
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2865
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2866
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2867
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2868
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2869
                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
  2870
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2871
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2875
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2876
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2877
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2878
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2879
    }/*function_date_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2880
    break;
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
 *DATE_TO_STRING
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
    case function_date_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2886
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2887
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2891
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2892
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2893
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2894
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2895
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2896
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2897
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2898
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2899
                function_name = (symbol_c*)(new pragma_c("__date_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2900
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2901
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2902
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2903
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2904
                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
  2905
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2906
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2907
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2908
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2909
            
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
            ERROR;
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
    }/*function_date_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2915
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2916
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2917
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2918
 *DATE_TO_LWORD
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
    case function_date_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2921
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2922
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2923
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2924
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2925
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2926
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2929
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2930
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2931
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2932
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2933
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2934
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2935
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2936
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2937
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2938
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2939
                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
  2940
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2941
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2946
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2949
    }/*function_date_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2950
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2953
 *DATE_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2954
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2955
    case function_date_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2956
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2957
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2960
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2961
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2962
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2963
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2964
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2965
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2966
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2969
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2970
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2971
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  2972
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2973
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2974
                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
  2975
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2976
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2977
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2978
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2979
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2980
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2981
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2982
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2983
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2984
    }/*function_date_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2985
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2986
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2987
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2988
 *DATE_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2989
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2990
    case function_date_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2991
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2992
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2993
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2994
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2995
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2996
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2999
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3000
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3001
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3002
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_real"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3005
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3006
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3007
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3008
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3009
                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
  3010
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3019
    }/*function_date_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3020
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3021
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3022
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3023
 *DATE_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3024
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3025
    case function_date_to_byte :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3031
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3032
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3033
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3034
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3035
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3036
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3040
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3041
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3042
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3043
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3044
                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
  3045
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3046
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3051
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3052
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3053
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3054
    }/*function_date_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3055
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3056
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3057
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3058
 *DATE_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3059
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3060
    case function_date_to_usint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3063
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3064
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3065
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3066
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3069
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3070
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3071
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
149
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_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3075
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3076
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3077
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3078
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3079
                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
  3080
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3081
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3082
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3083
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3086
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3089
    }/*function_date_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3090
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3091
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
 *DATE_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3094
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3095
    case function_date_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3096
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3097
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3098
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3101
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3104
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3105
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3106
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3107
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3110
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3111
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3112
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3113
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3114
                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
  3115
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3116
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3117
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3118
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3119
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3120
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3121
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3124
    }/*function_date_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3125
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3126
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3127
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3128
 *DATE_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3129
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3130
    case function_date_to_int :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3135
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3136
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3137
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3138
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3139
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3140
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3141
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3142
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3143
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3144
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3145
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3146
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3147
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3148
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3149
                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
  3150
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3151
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3152
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3153
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3154
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3155
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3156
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3157
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3158
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3159
    }/*function_date_to_int*/
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
 *DWORD_TO_REAL
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
    case function_dword_to_real :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3168
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3169
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3170
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3171
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3172
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3173
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3174
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3175
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3176
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3177
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3178
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3179
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3180
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3181
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3182
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3183
                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
  3184
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3185
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3189
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3190
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3191
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3192
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3193
    }/*function_dword_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3194
    break;
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
 *DWORD_TO_SINT
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
    case function_dword_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3200
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3201
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3205
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3206
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3207
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3208
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3209
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3210
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3211
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3212
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3213
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3214
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3215
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3216
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3217
                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
  3218
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3219
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3220
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3221
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3222
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3223
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3224
            ERROR;
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
    }/*function_dword_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3228
    break;
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
 *DWORD_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3232
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3233
    case function_dword_to_lint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3238
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3239
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3242
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3243
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3244
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3245
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3246
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3247
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3248
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3249
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3250
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3251
                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
  3252
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3253
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3254
                
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3259
        }
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
    }/*function_dword_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3262
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3263
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
 *DWORD_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3266
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3267
    case function_dword_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3268
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3269
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3270
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3271
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3272
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3273
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3274
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3275
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3276
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3277
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3278
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3279
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3280
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3281
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3282
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3283
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3284
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3285
                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
  3286
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3287
                break;
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3293
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3294
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3295
    }/*function_dword_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3296
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3297
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
 *DWORD_TO_DATE
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
    case function_dword_to_date :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3304
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3305
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3306
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3307
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3308
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3309
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3310
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3311
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3312
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3313
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3314
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3315
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3316
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3317
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3318
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3319
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3320
                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
  3321
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3322
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3323
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3324
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3325
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3328
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3329
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3330
    }/*function_dword_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3331
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3332
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
 *DWORD_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3335
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3336
    case function_dword_to_dt :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3339
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3342
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3345
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3346
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3347
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3351
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3352
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3353
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3354
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3355
                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
  3356
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3357
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3362
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3363
        }
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
    }/*function_dword_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3366
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3367
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3368
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3369
 *DWORD_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3370
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3371
    case function_dword_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3372
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3373
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3374
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3375
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3376
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3377
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3378
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3379
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3380
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3381
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3382
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3383
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3384
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3385
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3386
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3387
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3388
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3389
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3390
                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
  3391
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3392
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3398
        }
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
    }/*function_dword_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3401
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3402
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3403
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3404
 *DWORD_TO_UDINT
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
    case function_dword_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3407
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3408
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3409
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3410
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3411
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3412
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3415
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3416
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3417
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3418
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3419
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3420
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3421
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3422
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3423
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3424
                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
  3425
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3426
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3429
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3432
        }
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
    }/*function_dword_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3435
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3438
 *DWORD_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3439
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3440
    case function_dword_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3441
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3442
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3446
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3449
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3450
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3451
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3452
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3453
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3454
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3455
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3456
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3457
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3458
                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
  3459
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3460
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3461
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3464
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3465
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3466
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3467
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3468
    }/*function_dword_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3469
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3470
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3471
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3472
 *DWORD_TO_STRING
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
    case function_dword_to_string :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3477
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3478
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3479
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3480
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3481
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3482
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3483
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3484
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3485
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3486
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3487
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3488
                function_name = (symbol_c*)(new pragma_c("__bit_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3489
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3490
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3491
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3492
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3493
                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
  3494
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3495
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3501
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3502
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3503
    }/*function_dword_to_string*/
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
 *DWORD_TO_LWORD
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
    case function_dword_to_lword :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3512
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3513
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3514
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3515
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3516
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3517
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3518
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3519
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3520
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3521
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3522
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3523
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3524
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3525
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3526
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3527
                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
  3528
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3529
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3533
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3534
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3535
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3536
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3537
    }/*function_dword_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3538
    break;
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
 *DWORD_TO_UINT
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
    case function_dword_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3544
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3545
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3549
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3550
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3551
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3552
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3553
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3554
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3555
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3556
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3557
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3558
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3559
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3560
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3561
                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
  3562
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3563
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3564
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3565
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3566
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3567
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3568
            ERROR;
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
    }/*function_dword_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3572
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3573
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3574
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3575
 *DWORD_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3576
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3577
    case function_dword_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3580
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3581
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3582
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3583
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3584
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3585
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3586
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3587
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3588
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3589
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3590
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3591
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3592
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3593
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3594
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3595
                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
  3596
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3597
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3598
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3599
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3600
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3601
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3602
            ERROR;
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
    }/*function_dword_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3606
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3609
 *DWORD_TO_BYTE
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
    case function_dword_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3612
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3613
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3614
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3615
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3616
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3617
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3618
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3619
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3620
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3621
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3622
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3623
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3624
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3625
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3626
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3627
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3628
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3629
                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
  3630
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3631
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3632
                
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3637
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3638
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3639
    }/*function_dword_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3640
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3641
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
 *DWORD_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3644
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3645
    case function_dword_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3646
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3647
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3648
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3651
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3652
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3653
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3654
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3655
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3656
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3657
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3658
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3659
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3660
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3661
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3662
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3663
                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
  3664
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3665
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3670
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3671
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3672
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3673
    }/*function_dword_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3674
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3675
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3676
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3677
 *DWORD_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3678
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3679
    case function_dword_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3680
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3681
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3684
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3685
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3686
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3687
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3688
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3689
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3690
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3691
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3692
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3693
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3694
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3695
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3696
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3697
                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
  3698
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3699
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3705
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3706
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3707
    }/*function_dword_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3708
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3711
 *DWORD_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3712
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3713
    case function_dword_to_bool :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3716
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3719
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3722
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3723
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3724
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3725
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3726
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3727
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3728
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3729
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3730
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3731
                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
  3732
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3733
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3737
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3738
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3741
    }/*function_dword_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3742
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3745
 *DWORD_TO_TIME
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
    case function_dword_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3748
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3749
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3750
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3751
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3752
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3753
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3756
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3757
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3758
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3759
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3760
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3761
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3762
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3763
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3764
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3765
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3766
                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
  3767
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3768
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3769
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3770
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3771
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3772
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3773
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3774
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3775
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3776
    }/*function_dword_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3777
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3778
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3779
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3780
 *DWORD_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3781
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3782
    case function_dword_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3783
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3784
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3785
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3786
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3787
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3788
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3789
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3790
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3791
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3792
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3793
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3794
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3795
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3796
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3797
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3798
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3799
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3800
                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
  3801
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3802
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3803
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3804
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3805
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3806
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3807
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3808
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3809
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3810
    }/*function_dword_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3811
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3812
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3813
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3814
 *DT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3815
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3816
    case function_dt_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3817
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3818
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3821
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3822
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3823
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3824
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3825
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3826
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3827
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3830
                function_name = (symbol_c*)(new pragma_c("__time_to_real"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3831
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3832
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3833
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3834
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3835
                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
  3836
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3837
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3838
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3839
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3840
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3841
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3842
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3843
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3844
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3845
    }/*function_dt_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3846
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3847
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3848
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3849
 *DT_TO_SINT
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
    case function_dt_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3852
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3853
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3854
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3855
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3856
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3857
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3860
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3861
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3862
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3865
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3866
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3867
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3868
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3869
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3870
                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
  3871
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3872
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3876
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3877
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3878
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3879
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3880
    }/*function_dt_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3881
    break;
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
 *DT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3885
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3886
    case function_dt_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3887
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3888
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3892
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3893
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3894
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3895
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3896
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3897
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3901
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3902
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3903
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3904
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3905
                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
  3906
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3907
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3908
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3911
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3912
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3913
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3914
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3915
    }/*function_dt_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3916
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3917
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3918
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3919
 *DT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3920
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3921
    case function_dt_to_dint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3926
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3927
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3928
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3929
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3930
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3931
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3932
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3935
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3936
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3937
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3938
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3939
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3940
                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
  3941
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3942
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3943
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3944
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3945
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3948
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3949
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3950
    }/*function_dt_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3951
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3952
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
 *DT_TO_DWORD
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
    case function_dt_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3957
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3958
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3961
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3962
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3965
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3966
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3967
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3968
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3969
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3970
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3971
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3972
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  3973
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3974
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3975
                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
  3976
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3977
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3981
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3982
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3983
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3984
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3985
    }/*function_dt_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3986
    break;
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
 *DT_TO_UDINT
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
    case function_dt_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3992
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3993
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3997
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3998
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3999
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4000
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4001
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4002
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4003
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4004
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4005
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4006
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4007
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4008
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4009
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4010
                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
  4011
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4012
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4013
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4014
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4015
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4016
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4017
            ERROR;
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
    }/*function_dt_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4021
    break;
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
 *DT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4025
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4026
    case function_dt_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4029
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4030
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4031
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4032
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4035
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4036
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4037
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4038
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4039
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4040
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4041
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4042
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4043
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4044
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4045
                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
  4046
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4047
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4048
                
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4053
        }
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
    }/*function_dt_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4056
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4057
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
 *DT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4060
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4061
    case function_dt_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4062
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4063
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4064
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4067
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4068
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4069
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4070
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4071
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4072
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4073
            {
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
                function_name = (symbol_c*)(new pragma_c("__dt_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4076
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4077
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4078
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4079
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4080
                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
  4081
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4082
                break;
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4088
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4089
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4090
    }/*function_dt_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4091
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4092
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
 *DT_TO_LWORD
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
    case function_dt_to_lword :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4099
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4100
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4101
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4102
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4103
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4104
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4105
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4106
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4107
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4108
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4109
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4110
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4111
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4112
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4113
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4114
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4115
                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
  4116
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4117
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4121
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4122
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4125
    }/*function_dt_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4126
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4129
 *DT_TO_UINT
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
    case function_dt_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4132
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4133
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4134
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4135
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4136
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4137
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4140
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4141
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4142
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4143
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4144
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4145
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4146
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4147
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4148
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4149
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4150
                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
  4151
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4152
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4153
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4154
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4157
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4158
        }
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
    }/*function_dt_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4161
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4164
 *DT_TO_LREAL
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
    case function_dt_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4167
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4168
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4169
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4172
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4173
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4174
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4175
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4176
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4177
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__time_to_real"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4181
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4182
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4183
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4184
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4185
                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
  4186
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4187
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4188
                
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
            
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
            ERROR;
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
    }/*function_dt_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4196
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4199
 *DT_TO_BYTE
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
    case function_dt_to_byte :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4204
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4205
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4206
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4207
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4208
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4209
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4210
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4211
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4212
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4213
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4216
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4217
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4218
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4219
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4220
                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
  4221
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4222
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4228
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4229
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4230
    }/*function_dt_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4231
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4232
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4233
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4234
 *DT_TO_USINT
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
    case function_dt_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4237
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4238
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4239
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4240
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4241
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4242
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4245
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4246
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4247
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4248
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4249
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4250
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4251
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4252
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4253
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4254
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4255
                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
  4256
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4257
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4260
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4261
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4262
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4263
        }
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
    }/*function_dt_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4266
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4269
 *DT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4270
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4271
    case function_dt_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4272
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4273
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4277
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4278
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4279
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4280
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4281
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4282
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4285
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4286
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4287
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4288
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4289
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4290
                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
  4291
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4292
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4293
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4294
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4295
            
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
            ERROR;
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_dt_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4301
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4302
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4303
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4304
 *DT_TO_INT
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
    case function_dt_to_int :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4309
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4310
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4311
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4312
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4313
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4314
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4315
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4316
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4317
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4318
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4319
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4320
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4321
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4322
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4323
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4324
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4325
                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
  4326
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4327
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4333
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4334
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4335
    }/*function_dt_to_int*/
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
 *TOD_TO_REAL
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
    case function_tod_to_real :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4344
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4345
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4346
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4347
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4348
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4349
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4350
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4351
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4352
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__time_to_real"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4356
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4357
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4358
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4359
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4360
                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
  4361
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4362
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4363
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4364
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4365
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4366
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4367
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4368
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4369
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4370
    }/*function_tod_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4371
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4372
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4373
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4374
 *TOD_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4375
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4376
    case function_tod_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4377
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4378
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4379
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4380
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4381
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4382
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4385
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4386
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4387
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4388
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4391
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4392
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4393
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4394
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4395
                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
  4396
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4397
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4398
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4399
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4400
            
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
            ERROR;
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
    }/*function_tod_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4406
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4409
 *TOD_TO_LINT
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
    case function_tod_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4412
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4413
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4414
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4417
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4420
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4421
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4422
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4423
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4424
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4425
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4426
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4427
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4428
                  IN_type_symbol = last_type_symbol;
149
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::lint_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_lint*/
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
 *TOD_TO_DINT
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_tod_to_dint :
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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4457
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4461
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4462
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4463
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4464
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4465
                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
  4466
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4467
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4468
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4469
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4472
            ERROR;
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
    }/*function_tod_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4476
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4477
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
 *TOD_TO_DWORD
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
    case function_tod_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4482
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4483
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4486
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4487
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4488
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4489
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4490
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4491
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4492
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4493
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4494
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4495
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4496
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4497
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4498
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4499
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4500
                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
  4501
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4502
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4503
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4507
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4508
        }
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
    }/*function_tod_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4511
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4514
 *TOD_TO_UDINT
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
    case function_tod_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4517
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4518
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4519
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4522
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4523
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4524
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4525
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4526
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4527
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4531
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4532
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4533
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4534
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4535
                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
  4536
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4537
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4542
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4545
    }/*function_tod_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4546
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4547
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4548
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4549
 *TOD_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4550
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4551
    case function_tod_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4554
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4555
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4556
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4557
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4558
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4559
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4560
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4561
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4562
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4563
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4564
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4565
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4566
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4567
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4568
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4569
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4570
                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
  4571
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4572
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4576
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4577
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4578
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4579
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4580
    }/*function_tod_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4581
    break;
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
 *TOD_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4585
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4586
    case function_tod_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4587
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4588
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4592
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4593
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4594
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4595
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4596
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4597
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__tod_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4601
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4602
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4603
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4604
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4605
                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
  4606
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4607
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4608
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4609
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4610
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4611
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4612
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4613
        }
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
    }/*function_tod_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4616
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4617
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4618
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4619
 *TOD_TO_LWORD
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
    case function_tod_to_lword :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4624
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4625
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4626
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4627
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4628
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4629
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4630
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4631
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4632
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4633
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4634
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4635
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4636
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4637
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4638
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4639
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4640
                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
  4641
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4642
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4643
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4644
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4645
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4648
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4649
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4650
    }/*function_tod_to_lword*/
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
 *TOD_TO_UINT
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
    case function_tod_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4657
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4658
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4659
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4660
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4661
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4662
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4663
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4664
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4665
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4666
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4667
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4671
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4672
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4673
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4674
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4675
                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
  4676
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4677
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4680
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4681
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4682
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4683
        }
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
    }/*function_tod_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4686
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4689
 *TOD_TO_LREAL
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
    case function_tod_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4692
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4693
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4694
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4695
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4696
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4697
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4700
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4701
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4702
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4703
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4704
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4705
                function_name = (symbol_c*)(new pragma_c("__time_to_real"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4706
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4707
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4708
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4709
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4710
                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
  4711
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4712
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4713
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4714
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4715
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4720
    }/*function_tod_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4721
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4722
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4723
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4724
 *TOD_TO_BYTE
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
    case function_tod_to_byte :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4731
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4732
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4733
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4734
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4735
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4736
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4737
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4740
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4741
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4742
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4743
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4744
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4745
                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
  4746
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4747
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4752
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4755
    }/*function_tod_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4756
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4759
 *TOD_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4760
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4761
    case function_tod_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4762
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4763
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4764
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4765
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4766
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4767
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4768
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4769
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4770
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4771
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4772
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4775
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4776
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4777
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4778
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4779
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4780
                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
  4781
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4782
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4786
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4787
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4788
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4789
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4790
    }/*function_tod_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4791
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4792
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4793
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4794
 *TOD_TO_ULINT
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
    case function_tod_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4797
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4798
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4799
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4800
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4801
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4802
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4805
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4806
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4807
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4808
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4809
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4810
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4811
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4812
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4813
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4814
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4815
                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
  4816
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4825
    }/*function_tod_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4826
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4827
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4828
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4829
 *TOD_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4830
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4831
    case function_tod_to_int :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4837
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4838
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4839
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4840
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4841
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4842
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4845
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4846
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4847
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4848
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4849
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4850
                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
  4851
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4852
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4853
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4854
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4855
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4856
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4857
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4858
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4859
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4860
    }/*function_tod_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4861
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4862
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
 *UDINT_TO_REAL
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
    case function_udint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4867
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4868
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4869
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4870
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4871
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4872
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4875
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4876
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4877
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4878
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4879
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4880
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4881
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4882
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4883
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4884
                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
  4885
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4886
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4890
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4891
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4892
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4893
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4894
    }/*function_udint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4895
    break;
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
 *UDINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4899
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4900
    case function_udint_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4901
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4902
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4906
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4909
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4910
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4911
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4912
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4913
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4914
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4915
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4916
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4917
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4918
                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
  4919
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4920
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4921
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4922
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4923
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4924
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4925
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4926
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4927
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4928
    }/*function_udint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4929
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4930
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4931
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4932
 *UDINT_TO_LINT
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
    case function_udint_to_lint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4937
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4940
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4941
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4942
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4943
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4944
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4945
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4946
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4947
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4948
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4949
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4950
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4951
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4952
                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
  4953
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4954
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4955
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4960
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4961
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4962
    }/*function_udint_to_lint*/
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
 *UDINT_TO_DINT
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
    case function_udint_to_dint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4971
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4972
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4973
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4974
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4975
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4976
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4977
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4978
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4979
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4980
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4981
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4982
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4983
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  4984
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4985
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4986
                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
  4987
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4988
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4992
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4993
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4994
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4995
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4996
    }/*function_udint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4997
    break;
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
 *UDINT_TO_DATE
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
    case function_udint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5003
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5004
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5008
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5009
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5010
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5011
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5012
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5013
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5014
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5015
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5016
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5017
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5018
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5019
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5020
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5021
                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
  5022
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5023
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5024
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5025
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5026
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5027
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5028
            ERROR;
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
    }/*function_udint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5032
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5035
 *UDINT_TO_DWORD
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
    case function_udint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5038
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5039
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5040
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5041
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5042
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5043
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5044
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5045
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5046
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5047
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5048
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5049
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5050
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5051
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5052
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5053
                  IN_type_symbol = last_type_symbol;
149
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::dword_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_udint_to_dword*/
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
 *UDINT_TO_DT
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_udint_to_dt :
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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5082
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5086
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5087
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5088
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5089
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5090
                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
  5091
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5092
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5093
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5097
            ERROR;
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
    }/*function_udint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5101
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5102
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
 *UDINT_TO_TOD
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
    case function_udint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5107
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5108
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5111
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5112
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5113
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5114
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5115
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5116
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5117
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5118
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5119
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5120
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5121
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5122
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5123
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5124
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5125
                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
  5126
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5127
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5128
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5129
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5132
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5133
        }
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
    }/*function_udint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5136
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5139
 *UDINT_TO_WORD
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
    case function_udint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5142
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5143
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5144
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5147
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5148
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5149
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5150
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5151
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5152
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5153
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5154
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5155
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5156
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5157
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5158
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5159
                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
  5160
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5161
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5162
                
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
            
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
            ERROR;
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
    }/*function_udint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5170
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5171
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5172
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5173
 *UDINT_TO_STRING
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
    case function_udint_to_string :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5178
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5179
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5180
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5181
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5182
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5183
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5184
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5185
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5186
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5187
            {
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
                function_name = (symbol_c*)(new pragma_c("__uint_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5190
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5191
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5192
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5193
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5194
                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
  5195
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5196
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5197
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5198
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5199
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5202
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5203
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5204
    }/*function_udint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5205
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5208
 *UDINT_TO_LWORD
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
    case function_udint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5211
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5212
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5213
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5216
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5219
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5220
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5221
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5222
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5223
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5224
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5225
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5226
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5227
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5228
                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
  5229
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5230
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5233
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5234
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5235
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5236
        }
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
    }/*function_udint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5239
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5242
 *UDINT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5243
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5244
    case function_udint_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5245
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5246
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5250
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5251
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5252
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5253
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5254
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5255
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5256
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5257
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5258
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5259
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5260
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5261
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5262
                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
  5263
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5264
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5265
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5268
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5269
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5270
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5271
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5272
    }/*function_udint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5273
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5274
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5275
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5276
 *UDINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5277
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5278
    case function_udint_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5283
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5284
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5285
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5286
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5287
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5288
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5289
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5290
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5291
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5292
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5293
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5294
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5295
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5296
                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
  5297
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5298
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5299
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5300
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5303
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5306
    }/*function_udint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5307
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5308
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5309
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5310
 *UDINT_TO_BYTE
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
    case function_udint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5313
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5314
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5317
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5318
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5321
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5322
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5323
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5324
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5325
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5326
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5327
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5328
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5329
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5330
                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
  5331
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5332
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5333
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5337
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5338
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5339
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5340
    }/*function_udint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5341
    break;
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
 *UDINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5345
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5346
    case function_udint_to_usint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5349
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5350
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5351
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5352
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5355
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5356
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5357
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5358
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5359
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5360
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5361
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5362
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5363
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5364
                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
  5365
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5366
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5369
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5370
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5371
            ERROR;
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
    }/*function_udint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5375
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5376
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
 *UDINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5379
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5380
    case function_udint_to_ulint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5383
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5384
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5385
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5386
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5387
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5388
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5389
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5390
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5391
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5392
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5393
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5394
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5395
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5396
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5397
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5398
                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
  5399
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5400
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5401
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5402
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5403
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5404
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5405
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5408
    }/*function_udint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5409
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5410
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5411
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5412
 *UDINT_TO_BOOL
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
    case function_udint_to_bool :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5419
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5420
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5421
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5422
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5423
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5424
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5425
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5426
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5427
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5428
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5429
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5430
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5431
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5432
                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
  5433
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5434
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5439
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5442
    }/*function_udint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5443
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5446
 *UDINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5447
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5448
    case function_udint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5449
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5450
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5453
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5454
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5455
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5456
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5457
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5458
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5459
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5462
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5463
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5464
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5465
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5466
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5467
                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
  5468
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5469
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5473
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5474
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5477
    }/*function_udint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5478
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5481
 *UDINT_TO_INT
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
    case function_udint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5484
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5485
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5486
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5487
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5488
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5489
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5492
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5493
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5494
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5495
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5496
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5497
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5498
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5499
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5500
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5501
                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
  5502
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5503
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5504
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5508
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5509
        }
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
    }/*function_udint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5512
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5515
 *WORD_TO_REAL
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
    case function_word_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5518
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5519
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5520
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5521
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5522
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5523
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5524
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5525
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5526
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5527
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5528
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5529
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5530
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5531
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5532
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5533
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5534
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5535
                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
  5536
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5537
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5538
                
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
            
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
            ERROR;
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
    }/*function_word_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5546
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5547
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5548
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5549
 *WORD_TO_SINT
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
    case function_word_to_sint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5554
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5555
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5556
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5557
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5560
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5561
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5562
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5563
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5564
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5565
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5566
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5567
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5568
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5569
                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
  5570
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5571
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5577
        }
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
    }/*function_word_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5580
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5583
 *WORD_TO_LINT
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
    case function_word_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5586
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5587
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5588
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5589
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5590
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5591
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5594
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5595
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5596
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5597
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5598
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5599
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5600
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5601
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5602
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5603
                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
  5604
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5605
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5609
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5610
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5611
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5612
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5613
    }/*function_word_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5614
    break;
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
 *WORD_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5618
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5619
    case function_word_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5620
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5621
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5625
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5628
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5629
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5630
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5631
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5632
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5633
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5634
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5635
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5636
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5637
                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
  5638
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5639
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5640
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5643
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5644
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5645
        }
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
    }/*function_word_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5648
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5649
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5650
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5651
 *WORD_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5652
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5653
    case function_word_to_date :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5658
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5659
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5660
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5661
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5662
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5663
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5664
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5667
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5668
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5669
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5670
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5671
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5672
                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
  5673
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5674
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5675
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5680
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5681
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5682
    }/*function_word_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5683
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5684
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5685
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5686
 *WORD_TO_DWORD
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
    case function_word_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5689
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5690
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5693
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5694
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5697
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5698
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5699
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5700
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5701
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5702
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5703
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5704
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5705
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5706
                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
  5707
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5708
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5709
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5713
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5714
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5715
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5716
    }/*function_word_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5717
    break;
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
 *WORD_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5721
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5722
    case function_word_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5725
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5726
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5727
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5728
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5731
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5732
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5733
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5736
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5737
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5738
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5739
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5740
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5741
                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
  5742
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5743
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5744
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5745
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5746
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5747
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5748
            ERROR;
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
    }/*function_word_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5752
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5753
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
 *WORD_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5756
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5757
    case function_word_to_tod :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5760
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5763
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5764
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5765
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5766
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5767
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5768
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5771
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5772
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5773
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5774
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5775
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5776
                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
  5777
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5778
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5779
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5780
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5784
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5785
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5786
    }/*function_word_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5787
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5788
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5789
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5790
 *WORD_TO_UDINT
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
    case function_word_to_udint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5797
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5798
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5799
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5800
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5801
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5802
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5803
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5804
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5805
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5806
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5807
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5808
                  IN_type_symbol = last_type_symbol;
149
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::udint_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_word_to_udint*/
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
 *WORD_TO_STRING
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_word_to_string :
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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5837
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
149
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("__bit_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5841
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5842
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5843
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5844
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5845
                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
  5846
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5847
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5848
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5849
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5850
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5851
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5852
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5853
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5854
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5855
    }/*function_word_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5856
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5857
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5858
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5859
 *WORD_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5860
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5861
    case function_word_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5862
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5863
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5864
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5865
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5866
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5867
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5870
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5871
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5872
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5873
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5874
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5875
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5876
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5877
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5878
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5879
                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
  5880
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5881
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5882
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5883
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5884
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5885
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5886
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5889
    }/*function_word_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5890
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5893
 *WORD_TO_UINT
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
    case function_word_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5896
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5897
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5898
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5899
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5900
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5901
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5902
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5903
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5904
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5905
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5906
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5907
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5908
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5909
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5910
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5911
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5912
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5913
                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
  5914
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5915
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5916
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5917
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5918
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5923
    }/*function_word_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5924
    break;
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
 *WORD_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5928
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5929
    case function_word_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5930
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5931
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5934
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5935
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5936
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5937
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5938
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5939
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5940
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5941
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5942
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5943
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5944
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5945
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5946
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5947
                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
  5948
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5957
    }/*function_word_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5958
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5959
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5960
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5961
 *WORD_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5962
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5963
    case function_word_to_byte :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5969
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5970
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5971
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5972
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5973
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5974
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5975
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5976
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5977
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5978
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  5979
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5980
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5981
                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
  5982
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5983
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5984
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5985
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5986
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5987
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5988
            ERROR;
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
    }/*function_word_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5992
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5995
 *WORD_TO_USINT
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
    case function_word_to_usint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6000
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6001
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6002
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6003
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6004
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6005
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6006
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6007
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6008
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6009
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6010
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6011
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6012
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6013
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6014
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6015
                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
  6016
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6017
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6018
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6019
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6020
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6023
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6024
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6025
    }/*function_word_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6026
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6027
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6028
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6029
 *WORD_TO_ULINT
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
    case function_word_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6032
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6033
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6034
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6035
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6036
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6037
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6040
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6041
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6042
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6043
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6044
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6045
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6046
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6047
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6048
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6049
                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
  6050
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6051
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6052
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6053
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6056
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6059
    }/*function_word_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6060
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6061
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
 *WORD_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6064
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6065
    case function_word_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6066
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6067
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6068
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6071
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6074
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6075
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6076
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6077
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6078
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6079
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6080
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6081
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6082
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6083
                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
  6084
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6085
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6088
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6089
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6090
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6091
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6092
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6093
    }/*function_word_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6094
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6095
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6096
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6097
 *WORD_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6098
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6099
    case function_word_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6100
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6101
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6105
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6108
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6109
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6110
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6113
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6114
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6115
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6116
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6117
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6118
                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
  6119
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6120
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6121
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6122
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6123
            
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
            ERROR;
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_word_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6129
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6130
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6131
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6132
 *WORD_TO_INT
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
    case function_word_to_int :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6137
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6140
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6141
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6142
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6143
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6144
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6145
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6146
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6147
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6148
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6149
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6150
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6151
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6152
                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
  6153
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6154
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6155
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6156
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6157
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6158
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6159
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6160
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6161
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6162
    }/*function_word_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6163
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6164
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
 *STRING_TO_REAL
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
    case function_string_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6169
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6170
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6173
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6174
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6175
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6176
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6177
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6178
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6179
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6180
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6181
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6182
                function_name = (symbol_c*)(new pragma_c("__string_to_real"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6183
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6184
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6185
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6186
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6187
                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
  6188
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6189
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6193
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6194
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6195
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6196
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6197
    }/*function_string_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6198
    break;
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
 *STRING_TO_SINT
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
    case function_string_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6204
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6205
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6209
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6210
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6211
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6212
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6213
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6214
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6215
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6216
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6217
                function_name = (symbol_c*)(new pragma_c("__string_to_sint"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6218
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6219
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6220
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6221
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6222
                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
  6223
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6224
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6225
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6226
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6227
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6228
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6229
            ERROR;
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
    }/*function_string_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6233
    break;
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
 *STRING_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6237
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6238
    case function_string_to_lint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6243
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6244
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6247
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6248
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6249
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6250
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6251
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6252
                function_name = (symbol_c*)(new pragma_c("__string_to_sint"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6253
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6254
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6255
                  IN_type_symbol = last_type_symbol;
149
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::lint_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_string_to_lint*/
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
 *STRING_TO_DINT
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_string_to_dint :
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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6284
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__string_to_sint"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6288
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6289
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6290
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6291
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6292
                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
  6293
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6294
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6295
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6299
            ERROR;
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
    }/*function_string_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6303
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6304
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6305
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6306
 *STRING_TO_DATE
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
    case function_string_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6309
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6310
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6311
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6312
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6313
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6314
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6315
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6316
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6317
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6318
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6319
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6320
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6321
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6322
                function_name = (symbol_c*)(new pragma_c("__string_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6323
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6324
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6325
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6326
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6327
                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
  6328
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6329
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6330
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6334
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6335
        }
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
    }/*function_string_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6338
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6339
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6340
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6341
 *STRING_TO_DWORD
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
    case function_string_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6344
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6345
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6346
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6347
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6348
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6349
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6350
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6351
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6352
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6353
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6354
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__string_to_bit"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6358
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6359
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6360
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6361
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6362
                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
  6363
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6364
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6369
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6372
    }/*function_string_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6373
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6374
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6375
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6376
 *STRING_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6377
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6378
    case function_string_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6381
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6382
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6383
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6384
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6387
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6388
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6389
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
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_name = (symbol_c*)(new pragma_c("__string_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6393
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6394
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6395
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6396
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6397
                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
  6398
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6399
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6400
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6404
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6405
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6406
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6407
    }/*function_string_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6408
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6409
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6410
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6411
 *STRING_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6412
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6413
    case function_string_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6414
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6415
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6419
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6420
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6421
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6422
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6423
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6424
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__string_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6428
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6429
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6430
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6431
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6432
                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
  6433
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6434
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6435
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6438
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6439
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6440
        }
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
    }/*function_string_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6443
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6444
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6445
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6446
 *STRING_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6447
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6448
    case function_string_to_udint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6451
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6452
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6453
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6454
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6455
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6456
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6457
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6458
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6459
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6462
                function_name = (symbol_c*)(new pragma_c("__string_to_uint"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6463
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6464
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6465
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6466
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6467
                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
  6468
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6469
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6470
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6471
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6472
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6473
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6474
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6475
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6476
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6477
    }/*function_string_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6478
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6479
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
 *STRING_TO_WORD
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
    case function_string_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6484
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6485
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6488
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6489
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6492
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6493
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6494
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6495
            {
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
                function_name = (symbol_c*)(new pragma_c("__string_to_bit"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6498
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6499
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6500
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6501
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6502
                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
  6503
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6504
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6508
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6509
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6510
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6511
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6512
    }/*function_string_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6513
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6516
 *STRING_TO_LWORD
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
    case function_string_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6519
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6520
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6523
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6524
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6527
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6528
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6529
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6530
            {
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
                function_name = (symbol_c*)(new pragma_c("__string_to_bit"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6533
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6534
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6535
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6536
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6537
                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
  6538
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6539
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6540
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6541
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6542
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6543
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6544
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6547
    }/*function_string_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6548
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6549
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6550
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6551
 *STRING_TO_UINT
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
    case function_string_to_uint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6558
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6559
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6560
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6561
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6562
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6563
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6564
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6567
                function_name = (symbol_c*)(new pragma_c("__string_to_uint"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6568
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6569
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6570
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6571
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6572
                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
  6573
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6574
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6579
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6582
    }/*function_string_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6583
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6586
 *STRING_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6587
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6588
    case function_string_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6589
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6590
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6593
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6594
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6595
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6596
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6597
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6598
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6599
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6602
                function_name = (symbol_c*)(new pragma_c("__string_to_real"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6603
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6604
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6605
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6606
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6607
                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
  6608
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6609
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6613
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6614
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6617
    }/*function_string_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6618
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6621
 *STRING_TO_BYTE
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
    case function_string_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6624
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6625
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6626
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6627
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6628
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6629
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6632
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6633
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6634
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6635
            {
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
                function_name = (symbol_c*)(new pragma_c("__string_to_bit"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6638
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6639
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6640
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6641
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6642
                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
  6643
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6652
    }/*function_string_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6653
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6654
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6655
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6656
 *STRING_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6657
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6658
    case function_string_to_usint :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6664
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6665
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6666
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6667
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6668
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6669
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6672
                function_name = (symbol_c*)(new pragma_c("__string_to_uint"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6673
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6674
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6675
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6676
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6677
                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
  6678
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6679
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6680
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6685
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6686
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6687
    }/*function_string_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6688
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6689
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6690
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6691
 *STRING_TO_ULINT
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
    case function_string_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6694
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6695
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6696
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6697
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6698
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6699
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6702
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6703
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6704
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6705
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6706
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6707
                function_name = (symbol_c*)(new pragma_c("__string_to_uint"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6708
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6709
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6710
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6711
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6712
                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
  6713
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6714
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6715
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6716
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6717
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6720
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6721
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6722
    }/*function_string_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6723
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6726
 *STRING_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6727
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6728
    case function_string_to_bool :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6734
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6737
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6738
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6739
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6740
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6741
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6742
                function_name = (symbol_c*)(new pragma_c("__string_to_bool"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6743
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6744
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6745
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6746
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6747
                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
  6748
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6749
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6750
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6751
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6752
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6753
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6754
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6755
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6756
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6757
    }/*function_string_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6758
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6759
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
 *STRING_TO_TIME
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
    case function_string_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6764
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6765
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6768
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6769
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6772
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6773
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6774
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6775
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6776
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6777
                function_name = (symbol_c*)(new pragma_c("__string_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6778
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6779
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6780
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6781
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6782
                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
  6783
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6784
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6788
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6789
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6790
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6791
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6792
    }/*function_string_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6793
    break;
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
 *STRING_TO_INT
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
    case function_string_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6799
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6800
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6804
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6805
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6806
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6807
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6808
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6809
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6810
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6811
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6812
                function_name = (symbol_c*)(new pragma_c("__string_to_sint"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6813
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6814
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6815
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6816
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6817
                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
  6818
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6819
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6820
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6821
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6822
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6823
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6824
            ERROR;
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
    }/*function_string_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6828
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6831
 *LWORD_TO_REAL
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
    case function_lword_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6834
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6835
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6836
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6839
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6842
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6843
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6844
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6845
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6846
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6847
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6848
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6849
                  IN_type_symbol = last_type_symbol;
149
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_lword_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
 *LWORD_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_lword_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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6878
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6879
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6880
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6881
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6882
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6883
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6884
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6885
                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
  6886
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6887
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6893
        }
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
    }/*function_lword_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6896
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6899
 *LWORD_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6900
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6901
    case function_lword_to_lint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6904
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6905
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6906
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6907
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6910
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6911
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6912
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6913
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6914
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6915
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6916
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6917
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6918
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6919
                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
  6920
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6921
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6924
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6927
        }
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
    }/*function_lword_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6930
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6931
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6932
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6933
 *LWORD_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6934
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6935
    case function_lword_to_dint :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6938
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6939
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6940
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6941
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6944
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6945
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6946
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6947
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6948
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6949
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6950
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6951
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6952
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6953
                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
  6954
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6963
    }/*function_lword_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6964
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6965
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6966
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6967
 *LWORD_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6968
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6969
    case function_lword_to_date :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6975
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6976
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6977
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6978
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6979
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6980
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6984
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6985
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  6986
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6987
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6988
                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
  6989
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6990
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6995
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6998
    }/*function_lword_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6999
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7000
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7001
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7002
 *LWORD_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7003
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7004
    case function_lword_to_dword :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7007
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7008
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7009
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7010
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7013
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7014
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7015
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7016
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7017
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7018
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7019
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7020
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7021
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7022
                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
  7023
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7024
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7025
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7029
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7032
    }/*function_lword_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7033
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7034
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
 *LWORD_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7037
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7038
    case function_lword_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7039
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7040
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7041
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7042
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7043
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7044
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7047
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7048
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7049
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7050
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7051
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7052
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7053
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7054
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7055
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7056
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7057
                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
  7058
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7059
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7060
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7061
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7064
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7065
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7066
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7067
    }/*function_lword_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7068
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7069
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7070
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7071
 *LWORD_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7072
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7073
    case function_lword_to_tod :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7079
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7082
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7083
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7084
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7085
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7086
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7087
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7088
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7089
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7090
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7091
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7092
                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
  7093
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7094
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7095
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7096
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7097
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7098
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7099
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7102
    }/*function_lword_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7103
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7104
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7105
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7106
 *LWORD_TO_UDINT
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
    case function_lword_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7109
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7110
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7111
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7112
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7113
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7114
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7117
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7118
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7119
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7120
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7121
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7122
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7123
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7124
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7125
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7126
                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
  7127
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7128
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7129
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7130
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7131
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7132
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7133
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7134
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7135
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7136
    }/*function_lword_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7137
    break;
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
 *LWORD_TO_WORD
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
    case function_lword_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7143
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7144
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7148
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7149
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7150
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7151
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7152
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7153
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7154
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7155
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7156
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7157
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7158
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7159
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7160
                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
  7161
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7162
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7163
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7164
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7165
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7166
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7167
            ERROR;
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
    }/*function_lword_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7171
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7172
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
 *LWORD_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7175
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7176
    case function_lword_to_string :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7179
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7182
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7183
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7184
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7185
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7186
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7187
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7190
                function_name = (symbol_c*)(new pragma_c("__bit_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7191
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7192
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7193
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7194
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7195
                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
  7196
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7197
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7198
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7199
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7203
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7204
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7205
    }/*function_lword_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7206
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7207
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7208
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7209
 *LWORD_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7210
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7211
    case function_lword_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7212
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7213
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7214
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7217
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7218
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7219
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7220
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7221
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7222
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7223
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7224
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7225
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7226
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7227
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7228
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7229
                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
  7230
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7231
                break;
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7237
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7238
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7239
    }/*function_lword_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7240
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7241
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
 *LWORD_TO_LREAL
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
    case function_lword_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7248
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7249
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7250
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7251
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7252
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7253
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7254
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7255
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7256
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7257
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7258
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7259
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7260
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7261
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7262
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7263
                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
  7264
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7265
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7269
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7270
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7273
    }/*function_lword_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7274
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7277
 *LWORD_TO_BYTE
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
    case function_lword_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7280
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7281
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7282
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7283
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7284
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7285
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7288
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7289
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7290
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7291
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7292
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7293
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7294
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7295
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7296
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7297
                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
  7298
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7299
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7300
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7301
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7302
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7303
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7304
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7305
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7306
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7307
    }/*function_lword_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7308
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7309
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7310
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7311
 *LWORD_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7312
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7313
    case function_lword_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7314
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7315
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7316
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7317
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7318
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7319
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7320
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7321
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7322
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7323
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7324
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7325
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7326
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7327
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7328
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7329
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7330
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7331
                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
  7332
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7333
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7334
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7335
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7336
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7337
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7338
            ERROR;
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
    }/*function_lword_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7342
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7345
 *LWORD_TO_ULINT
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
    case function_lword_to_ulint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7350
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7351
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7352
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7353
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7354
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7355
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7356
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7357
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7358
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7359
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7360
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7361
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7362
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7363
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7364
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7365
                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
  7366
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7367
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7368
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7369
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7370
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7373
        }
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
    }/*function_lword_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7376
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7379
 *LWORD_TO_BOOL
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
    case function_lword_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7382
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7383
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7384
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7385
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7386
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7387
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7390
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7391
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7392
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7393
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7394
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7395
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7396
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7397
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7398
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7399
                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
  7400
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7401
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7405
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7406
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7407
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7408
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7409
    }/*function_lword_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7410
    break;
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
 *LWORD_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7414
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7415
    case function_lword_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7416
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7417
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7421
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7424
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7425
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7426
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7429
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7430
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7431
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7432
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7433
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7434
                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
  7435
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7436
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7437
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7438
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7439
            
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
            ERROR;
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
    }/*function_lword_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7445
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7446
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7447
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7448
 *LWORD_TO_INT
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
    case function_lword_to_int :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7456
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7459
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7460
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7461
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7462
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7463
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7464
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7465
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7466
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7467
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7468
                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
  7469
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7470
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7476
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7477
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7478
    }/*function_lword_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7479
    break;
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
 *UINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7483
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7484
    case function_uint_to_real :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7487
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7490
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7493
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7494
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7495
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7496
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7497
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7498
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7499
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7500
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7501
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7502
                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
  7503
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7504
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7507
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7508
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7509
            ERROR;
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
    }/*function_uint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7513
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7514
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7515
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7516
 *UINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7517
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7518
    case function_uint_to_sint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7521
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7524
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7525
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7526
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7527
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7528
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7529
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7530
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7531
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7532
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7533
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7534
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7535
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7536
                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
  7537
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7538
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7539
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7540
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7541
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7542
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7543
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7546
    }/*function_uint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7547
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7548
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7549
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7550
 *UINT_TO_LINT
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
    case function_uint_to_lint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7557
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7558
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7559
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7560
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7561
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7562
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7563
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7564
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7565
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7566
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7567
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7568
                  IN_type_symbol = last_type_symbol;
149
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::lint_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_uint_to_lint*/
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
 *UINT_TO_DINT
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_uint_to_dint :
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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7597
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7598
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7599
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7600
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7601
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7602
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7603
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7604
                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
  7605
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7606
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7612
        }
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
    }/*function_uint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7615
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7618
 *UINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7619
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7620
    case function_uint_to_date :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7623
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7626
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7627
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7628
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7629
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7630
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7631
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7632
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7633
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7634
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7635
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7636
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7637
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7638
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7639
                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
  7640
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7641
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7644
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7645
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7646
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7647
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7648
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7649
    }/*function_uint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7650
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7651
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7652
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7653
 *UINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7654
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7655
    case function_uint_to_dword :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7658
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7661
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7664
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7665
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7666
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7667
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7668
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7669
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7670
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7671
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7672
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7673
                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
  7674
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7675
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7676
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7680
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7681
        }
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
    }/*function_uint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7684
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7687
 *UINT_TO_DT
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
    case function_uint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7690
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7691
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7692
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7693
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7694
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7695
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7696
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7697
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7698
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7699
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7700
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7701
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7702
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7703
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7704
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7705
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7706
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7707
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7708
                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
  7709
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7710
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7715
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7718
    }/*function_uint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7719
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7720
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7721
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7722
 *UINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7723
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7724
    case function_uint_to_tod :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7727
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7728
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7729
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7730
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7733
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7734
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7735
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7738
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7739
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7740
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7741
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7742
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7743
                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
  7744
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7745
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7749
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7750
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7751
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7752
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7753
    }/*function_uint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7754
    break;
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
 *UINT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7758
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7759
    case function_uint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7760
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7761
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7765
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7766
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7767
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7768
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7769
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7770
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7771
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7772
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7773
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7774
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7775
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7776
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7777
                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
  7778
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7779
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7780
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7781
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7784
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7787
    }/*function_uint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7788
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7789
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7790
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7791
 *UINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7792
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7793
    case function_uint_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7796
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7797
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7798
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7799
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7800
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7801
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7802
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7803
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7804
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7805
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7806
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7807
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7808
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7809
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7810
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7811
                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
  7812
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7813
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7814
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7815
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7818
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7821
    }/*function_uint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7822
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7823
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
 *UINT_TO_STRING
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
    case function_uint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7828
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7829
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7830
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7831
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7832
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7833
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7836
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7837
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7838
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7839
            {
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
                function_name = (symbol_c*)(new pragma_c("__uint_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7842
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7843
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7844
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7845
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7846
                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
  7847
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7848
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7852
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7853
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7854
        }
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
    }/*function_uint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7857
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7860
 *UINT_TO_LWORD
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
    case function_uint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7863
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7864
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7867
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7868
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7871
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7872
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7873
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7874
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7875
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7876
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7877
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7878
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7879
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7880
                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
  7881
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7882
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7883
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7884
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7885
            
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
            ERROR;
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
    }/*function_uint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7891
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7894
 *UINT_TO_LREAL
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
    case function_uint_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7897
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7898
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7899
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7900
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7901
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7902
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7905
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7906
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7907
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7908
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7909
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7910
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7911
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7912
                  IN_type_symbol = last_type_symbol;
149
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::lreal_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_uint_to_lreal*/
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
 *UINT_TO_BYTE
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_uint_to_byte :
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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7941
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7942
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7943
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7944
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7945
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7946
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7947
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7948
                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
  7949
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7950
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7956
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7957
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7958
    }/*function_uint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7959
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7960
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7961
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7962
 *UINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7963
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7964
    case function_uint_to_usint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7967
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7970
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7973
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7974
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7975
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7976
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7977
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7978
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7979
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  7980
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7981
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7982
                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
  7983
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7984
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7988
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7989
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7992
    }/*function_uint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7993
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7994
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7995
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7996
 *UINT_TO_ULINT
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
    case function_uint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7999
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8000
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8001
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8002
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8003
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8004
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8007
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8008
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8009
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8010
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8011
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8012
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8013
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8014
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8015
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8016
                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
  8017
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8018
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8019
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8023
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8024
        }
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
    }/*function_uint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8027
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8028
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8029
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8030
 *UINT_TO_BOOL
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
    case function_uint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8033
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8034
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8035
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8036
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8037
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8038
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8039
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8040
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8041
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8042
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8043
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8044
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8045
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8046
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8047
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8048
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8049
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8050
                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
  8051
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8052
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8053
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8054
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8055
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8056
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8057
            ERROR;
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
    }/*function_uint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8061
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8064
 *UINT_TO_TIME
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
    case function_uint_to_time :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8069
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8070
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8071
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8072
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8073
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8074
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8075
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8076
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8077
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
149
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_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8081
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8082
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8083
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8084
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8085
                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
  8086
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8087
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8088
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8089
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8090
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8091
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8092
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8093
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8094
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8095
    }/*function_uint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8096
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8097
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8098
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8099
 *UINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8100
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8101
    case function_uint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8102
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8103
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8107
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8108
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8109
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8110
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8111
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8112
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8113
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8114
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8115
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8116
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8117
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8118
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8119
                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
  8120
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8121
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8122
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8123
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8126
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8127
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8128
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8129
    }/*function_uint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8130
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8131
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8132
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8133
 *LREAL_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8134
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8135
    case function_lreal_to_real :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8140
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8141
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8142
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8143
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8144
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8145
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8146
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8147
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8148
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8149
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8150
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8151
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8152
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8153
                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
  8154
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8155
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8156
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8157
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8158
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8159
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8160
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8163
    }/*function_lreal_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8164
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8165
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8166
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8167
 *LREAL_TO_SINT
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
    case function_lreal_to_sint :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8175
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8178
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8179
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8180
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8181
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8182
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8183
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8184
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8185
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8186
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8187
                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
  8188
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8189
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8195
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8196
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8197
    }/*function_lreal_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8198
    break;
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
 *LREAL_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8202
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8203
    case function_lreal_to_lint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8206
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8209
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8212
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8213
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8214
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8215
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8216
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8217
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8218
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8219
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8220
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8221
                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
  8222
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8223
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8224
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8225
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8226
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8227
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8228
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8229
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8230
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8231
    }/*function_lreal_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8232
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8233
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8234
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8235
 *LREAL_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8236
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8237
    case function_lreal_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8238
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8239
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8240
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8241
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8242
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8243
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8246
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8247
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8248
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8249
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8250
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8251
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8252
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8253
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8254
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8255
                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
  8256
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8257
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8258
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8259
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8260
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8261
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8262
            ERROR;
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
    }/*function_lreal_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8266
    break;
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
 *LREAL_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8270
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8271
    case function_lreal_to_date :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8276
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8277
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8278
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8279
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8280
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8281
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8282
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8283
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8284
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8285
                function_name = (symbol_c*)(new pragma_c("__real_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8286
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8287
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8288
                  IN_type_symbol = last_type_symbol;
149
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::date_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_lreal_to_date*/
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
 *LREAL_TO_DWORD
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_lreal_to_dword :
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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8317
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8318
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8319
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8320
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8321
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8322
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8323
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8324
                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
  8325
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8326
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8332
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8333
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8334
    }/*function_lreal_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8335
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8338
 *LREAL_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8339
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8340
    case function_lreal_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8343
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8344
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8345
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8346
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8349
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8350
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8351
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8352
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8353
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8354
                function_name = (symbol_c*)(new pragma_c("__real_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8355
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8356
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8357
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8358
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8359
                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
  8360
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8361
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8364
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8367
        }
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
    }/*function_lreal_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8370
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8371
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
 *LREAL_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8374
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8375
    case function_lreal_to_tod :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8378
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8381
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8384
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8385
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8386
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__real_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8390
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8391
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8392
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8393
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8394
                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
  8395
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8396
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8401
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8402
        }
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
    }/*function_lreal_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8405
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8406
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8407
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8408
 *LREAL_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8409
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8410
    case function_lreal_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8411
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8412
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8415
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8416
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8417
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8418
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8419
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8420
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8421
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8422
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8423
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8424
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8425
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8426
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8427
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8428
                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
  8429
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8430
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8431
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8432
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8433
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8436
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8437
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8438
    }/*function_lreal_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8439
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8440
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
 *LREAL_TO_WORD
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
    case function_lreal_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8445
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8446
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8447
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8448
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8449
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8450
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8453
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8454
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8455
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8456
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8457
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8458
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8459
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8460
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8461
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8462
                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
  8463
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8464
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8468
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8469
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8470
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8471
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8472
    }/*function_lreal_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8473
    break;
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
 *LREAL_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8477
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8478
    case function_lreal_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8479
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8480
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8484
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8485
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8486
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8487
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8488
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8489
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8490
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8491
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8492
                function_name = (symbol_c*)(new pragma_c("__real_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8493
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8494
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8495
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8496
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8497
                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
  8498
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8499
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8502
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8503
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8504
            ERROR;
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
    }/*function_lreal_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8508
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8509
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8510
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8511
 *LREAL_TO_LWORD
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
    case function_lreal_to_lword :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8519
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8522
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8523
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8524
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8525
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8526
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8527
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8528
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8529
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8530
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8531
                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
  8532
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8533
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8539
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8540
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8541
    }/*function_lreal_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8542
    break;
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
 *LREAL_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8546
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8547
    case function_lreal_to_uint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8550
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8551
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8552
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8553
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8556
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8557
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8558
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8559
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8560
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8561
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8562
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8563
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8564
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8565
                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
  8566
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8567
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8570
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8571
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8572
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8573
        }
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
    }/*function_lreal_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8576
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8579
 *LREAL_TO_BYTE
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
    case function_lreal_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8582
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8583
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8586
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8587
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8590
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8591
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8592
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8593
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8594
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8595
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8596
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8597
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8598
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8599
                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
  8600
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8601
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8602
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8603
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8604
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8605
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8606
            ERROR;
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
    }/*function_lreal_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8610
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8613
 *LREAL_TO_USINT
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
    case function_lreal_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8616
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8617
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8618
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8621
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8624
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8625
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8626
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8627
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8628
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8629
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8630
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8631
                  IN_type_symbol = last_type_symbol;
149
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::usint_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_lreal_to_usint*/
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
 *LREAL_TO_ULINT
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_lreal_to_ulint :
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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8660
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8661
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8662
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8663
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8664
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8665
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8666
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8667
                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
  8668
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8669
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8675
        }
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
    }/*function_lreal_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8678
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8681
 *LREAL_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8682
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8683
    case function_lreal_to_bool :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8686
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8687
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8688
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8689
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8692
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8693
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8694
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8695
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8696
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8697
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8698
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8699
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8700
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8701
                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
  8702
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8703
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8706
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8709
        }
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
    }/*function_lreal_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8712
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8713
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8714
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8715
 *LREAL_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8716
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8717
    case function_lreal_to_time :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8720
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8721
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8722
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8723
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8726
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8727
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8728
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__real_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8732
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8733
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8734
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8735
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8736
                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
  8737
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8738
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8743
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8744
        }
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
    }/*function_lreal_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8747
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8748
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8749
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8750
 *LREAL_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8751
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8752
    case function_lreal_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8753
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8754
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8757
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8758
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8759
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8760
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8761
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8762
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8763
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8764
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8765
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8766
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8767
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8768
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8769
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8770
                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
  8771
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8772
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8777
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8780
    }/*function_lreal_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8781
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8782
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8783
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8784
 *BYTE_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8785
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8786
    case function_byte_to_real :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8789
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8790
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8791
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8792
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8795
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8796
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8797
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8798
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8799
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8800
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8801
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8802
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8803
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8804
                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
  8805
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8806
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8807
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8811
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8814
    }/*function_byte_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8815
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8816
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
 *BYTE_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8819
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8820
    case function_byte_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8821
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8822
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8823
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8824
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8825
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8826
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8829
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8830
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8831
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8832
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8833
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8834
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8835
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8836
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8837
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8838
                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
  8839
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8840
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8843
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8846
        }
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
    }/*function_byte_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8849
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8852
 *BYTE_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8853
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8854
    case function_byte_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8855
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8856
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8860
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8863
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8864
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8865
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8866
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8867
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8868
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8869
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8870
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8871
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8872
                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
  8873
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8874
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8875
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8878
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8879
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8880
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8881
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8882
    }/*function_byte_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8883
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8884
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8885
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8886
 *BYTE_TO_DINT
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
    case function_byte_to_dint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8891
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8894
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8895
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8896
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8897
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8898
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8899
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8900
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8901
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8902
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8903
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8904
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8905
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8906
                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
  8907
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8908
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8909
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8914
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8915
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8916
    }/*function_byte_to_dint*/
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
 *BYTE_TO_DATE
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
    case function_byte_to_date :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8925
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8926
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8927
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8928
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8929
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8930
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8931
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8932
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8933
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8937
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8938
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8939
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8940
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8941
                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
  8942
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8943
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8946
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8947
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8948
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8949
        }
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
    }/*function_byte_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8952
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8955
 *BYTE_TO_DWORD
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
    case function_byte_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8958
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8959
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8962
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8963
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8966
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8967
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8968
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8969
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8970
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8971
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8972
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  8973
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8974
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8975
                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
  8976
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8977
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8978
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8979
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8980
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8981
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8982
            ERROR;
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
    }/*function_byte_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8986
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8989
 *BYTE_TO_DT
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
    case function_byte_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8992
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8993
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8994
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8997
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9000
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9001
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9002
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9003
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9006
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9007
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9008
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9009
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9010
                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
  9011
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9012
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9017
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9018
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9019
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9020
    }/*function_byte_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9021
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9024
 *BYTE_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9025
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9026
    case function_byte_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9027
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9028
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9031
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9032
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9033
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9034
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9035
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9036
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9037
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9040
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9041
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9042
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9043
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9044
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9045
                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
  9046
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9047
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9051
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9052
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9055
    }/*function_byte_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9056
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9059
 *BYTE_TO_UDINT
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
    case function_byte_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9062
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9063
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9064
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9065
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9066
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9067
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9070
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9071
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9072
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9073
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9074
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9075
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9076
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9077
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9078
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9079
                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
  9080
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9081
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9082
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9083
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9084
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9085
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9086
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9087
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9088
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9089
    }/*function_byte_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9090
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9091
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9092
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9093
 *BYTE_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9094
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9095
    case function_byte_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9096
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9097
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9098
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9099
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9100
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9101
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9102
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9103
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9104
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9105
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9106
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9107
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9108
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9109
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9110
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9111
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9112
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9113
                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
  9114
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9115
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9116
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9117
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9118
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9119
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9120
            ERROR;
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
    }/*function_byte_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9124
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9127
 *BYTE_TO_STRING
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
    case function_byte_to_string :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9132
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9133
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9134
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9135
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9136
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9137
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9138
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9139
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9140
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
149
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_name = (symbol_c*)(new pragma_c("__bit_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9144
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9145
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9146
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9147
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9148
                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
  9149
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9150
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9151
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9152
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9153
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9154
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9155
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9158
    }/*function_byte_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9159
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9160
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9161
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9162
 *BYTE_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9163
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9164
    case function_byte_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9165
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9166
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9167
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9170
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9173
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9174
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9175
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9176
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9177
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9178
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9179
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9180
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9181
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9182
                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
  9183
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9184
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9187
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9188
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9189
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9190
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9191
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9192
    }/*function_byte_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9193
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9196
 *BYTE_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9197
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9198
    case function_byte_to_uint :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9204
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9207
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9208
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9209
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9210
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9211
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9212
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9213
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9214
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9215
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9216
                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
  9217
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9218
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9219
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9220
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9221
            
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
            ERROR;
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
    }/*function_byte_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9227
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9228
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9229
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9230
 *BYTE_TO_LREAL
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
    case function_byte_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9238
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9241
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9242
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9243
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9244
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9245
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9246
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9247
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9248
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9249
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9250
                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
  9251
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9252
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9258
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9259
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9260
    }/*function_byte_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9261
    break;
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
 *BYTE_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9265
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9266
    case function_byte_to_usint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9269
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9272
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9275
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9276
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9277
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9278
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9279
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9280
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9281
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9282
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9283
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9284
                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
  9285
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9286
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9289
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9290
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9291
            ERROR;
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
    }/*function_byte_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9295
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9296
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9297
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9298
 *BYTE_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9299
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9300
    case function_byte_to_ulint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9303
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9306
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9307
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9308
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9309
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9310
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9311
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9312
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9313
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9314
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9315
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9316
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9317
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9318
                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
  9319
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9320
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9321
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9322
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9323
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9324
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9325
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9328
    }/*function_byte_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9329
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9330
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9331
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9332
 *BYTE_TO_BOOL
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
    case function_byte_to_bool :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9339
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9340
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9341
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9342
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9343
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9344
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9345
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9346
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9347
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9348
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9349
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9350
                  IN_type_symbol = last_type_symbol;
149
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::bool_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_byte_to_bool*/
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
 *BYTE_TO_TIME
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_byte_to_time :
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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9379
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9383
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9384
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9385
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9386
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9387
                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
  9388
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9389
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9390
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9394
            ERROR;
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
    }/*function_byte_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9398
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9399
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
 *BYTE_TO_INT
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
    case function_byte_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9404
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9405
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9408
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9409
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9410
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9411
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9412
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9413
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9414
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9415
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9416
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9417
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9418
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9419
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9420
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9421
                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
  9422
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9423
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9426
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9427
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9428
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9429
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9430
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9431
    }/*function_byte_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9432
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9433
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9434
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9435
 *USINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9436
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9437
    case function_usint_to_real :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9440
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9443
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9446
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9447
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9448
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9449
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9450
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9451
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9452
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9453
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9454
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9455
                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
  9456
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9457
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9458
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9462
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9463
        }
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
    }/*function_usint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9466
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9469
 *USINT_TO_SINT
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
    case function_usint_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9472
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9473
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9474
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9475
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9476
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9477
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9478
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9479
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9480
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9481
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9482
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9483
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9484
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9485
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9486
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9487
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9488
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9489
                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
  9490
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9491
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9492
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9493
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9494
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9495
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9496
            ERROR;
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
    }/*function_usint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9500
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9503
 *USINT_TO_LINT
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
    case function_usint_to_lint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9508
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9509
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9510
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9511
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9514
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9515
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9516
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9517
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9518
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9519
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9520
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9521
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9522
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9523
                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
  9524
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9525
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9531
        }
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
    }/*function_usint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9534
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9537
 *USINT_TO_DINT
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
    case function_usint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9540
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9541
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9542
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9543
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9544
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9545
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9548
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9549
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9550
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9551
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9552
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9553
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9554
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9555
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9556
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9557
                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
  9558
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9559
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9563
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9564
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9565
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9566
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9567
    }/*function_usint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9568
    break;
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
 *USINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9572
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9573
    case function_usint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9574
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9575
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9579
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9582
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9583
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9584
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9587
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9588
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9589
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9590
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9591
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9592
                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
  9593
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9594
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9597
            
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
            ERROR;
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
    }/*function_usint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9603
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9604
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9605
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9606
 *USINT_TO_DWORD
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
    case function_usint_to_dword :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9614
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9617
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9618
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9619
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9620
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9621
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9622
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9623
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9624
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9625
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9626
                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
  9627
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9628
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9634
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9635
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9636
    }/*function_usint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9637
    break;
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
 *USINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9641
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9642
    case function_usint_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9645
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9646
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9647
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9648
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9651
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9652
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9653
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9656
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9657
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9658
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9659
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9660
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9661
                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
  9662
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9663
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9664
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9665
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9666
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9667
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9668
            ERROR;
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
    }/*function_usint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9672
    break;
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
 *USINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9676
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9677
    case function_usint_to_tod :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9682
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9683
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9686
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9687
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9688
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9689
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9690
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9691
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9692
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9693
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9694
                  IN_type_symbol = last_type_symbol;
149
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::tod_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_usint_to_tod*/
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
 *USINT_TO_UDINT
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_usint_to_udint :
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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9723
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9724
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9725
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9726
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9727
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9728
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9729
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9730
                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
  9731
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9732
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9738
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9739
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9740
    }/*function_usint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9741
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9742
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9743
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9744
 *USINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9745
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9746
    case function_usint_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9749
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9752
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9755
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9756
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9757
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9758
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9759
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9760
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9761
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9762
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9763
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9764
                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
  9765
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9766
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9770
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9771
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9774
    }/*function_usint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9775
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9776
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9777
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9778
 *USINT_TO_STRING
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
    case function_usint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9781
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9782
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9783
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9784
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9785
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9786
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9789
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9790
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9791
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9792
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9793
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9794
                function_name = (symbol_c*)(new pragma_c("__uint_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9795
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9796
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9797
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9798
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9799
                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
  9800
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9809
    }/*function_usint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9810
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9811
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9812
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9813
 *USINT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9814
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9815
    case function_usint_to_lword :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9821
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9822
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9823
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9824
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9825
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9826
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9827
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9828
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9829
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9830
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9831
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9832
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9833
                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
  9834
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9835
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9836
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9837
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9838
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9839
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9840
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9841
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9842
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9843
    }/*function_usint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9844
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9845
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9846
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9847
 *USINT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9848
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9849
    case function_usint_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9850
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9851
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9852
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9853
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9854
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9855
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9858
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9859
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9860
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9861
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9862
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9863
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9864
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9865
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9866
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9867
                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
  9868
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9869
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9870
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9871
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9872
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9873
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9874
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9875
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9876
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9877
    }/*function_usint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9878
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9879
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9880
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9881
 *USINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9882
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9883
    case function_usint_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9884
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9885
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9889
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9890
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9891
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9892
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9893
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9894
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9895
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9896
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9897
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9898
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9899
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9900
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9901
                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
  9902
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9903
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9904
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9905
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9908
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9909
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9910
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9911
    }/*function_usint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9912
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9913
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9914
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9915
 *USINT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9916
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9917
    case function_usint_to_byte :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9922
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9923
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9924
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9925
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9926
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9927
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9928
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9929
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9930
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9931
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9932
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9933
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9934
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9935
                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
  9936
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9937
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9938
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9939
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9940
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9941
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9942
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9945
    }/*function_usint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9946
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9947
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9948
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9949
 *USINT_TO_ULINT
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
    case function_usint_to_ulint :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9957
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9960
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9961
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9962
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9963
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9964
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9965
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9966
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9967
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9968
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9969
                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
  9970
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9971
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9977
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9978
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9979
    }/*function_usint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9980
    break;
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
 *USINT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9984
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9985
    case function_usint_to_bool :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9988
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9991
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9994
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9995
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9996
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9997
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9998
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
  9999
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10000
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10001
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10002
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10003
                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
 10004
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10005
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10006
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10007
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10008
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10009
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10010
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10011
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10012
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10013
    }/*function_usint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10014
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10015
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10016
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10017
 *USINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10018
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10019
    case function_usint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10020
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10021
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10022
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10023
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10024
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10025
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10028
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10029
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10030
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10031
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10034
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10035
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10036
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10037
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10038
                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
 10039
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10040
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10041
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10042
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10043
            
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
            ERROR;
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
    }/*function_usint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10049
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10052
 *USINT_TO_INT
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
    case function_usint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10055
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10056
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10057
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10060
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10063
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10064
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10065
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10066
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10067
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10068
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10069
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10070
                  IN_type_symbol = last_type_symbol;
149
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::int_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_usint_to_int*/
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
 *ULINT_TO_REAL
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_ulint_to_real :
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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10099
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10100
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10101
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10102
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10103
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10104
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10105
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10106
                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
 10107
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10108
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10114
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10115
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10116
    }/*function_ulint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10117
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10120
 *ULINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10121
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10122
    case function_ulint_to_sint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10125
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10126
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10127
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10128
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10131
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10132
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10133
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10134
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10135
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10136
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10137
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10138
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10139
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10140
                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
 10141
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10142
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10146
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10147
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10150
    }/*function_ulint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10151
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10154
 *ULINT_TO_LINT
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
    case function_ulint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10157
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10158
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10159
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10160
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10161
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10162
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10165
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10166
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10167
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10168
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10169
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10170
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10171
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10172
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10173
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10174
                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
 10175
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10176
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10177
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10178
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10181
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10182
        }
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
    }/*function_ulint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10185
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10188
 *ULINT_TO_DINT
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
    case function_ulint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10191
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10192
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10193
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10196
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10197
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10198
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10199
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10200
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10201
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10202
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10203
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10204
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10205
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10206
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10207
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10208
                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
 10209
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10210
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10211
                
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
            
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
            ERROR;
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
    }/*function_ulint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10219
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10220
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10221
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10222
 *ULINT_TO_DATE
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
    case function_ulint_to_date :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10227
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10228
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10229
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10230
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10233
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10234
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10235
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
149
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_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10239
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10240
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10241
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10242
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10243
                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
 10244
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10245
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10246
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10247
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10248
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10249
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10250
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10253
    }/*function_ulint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10254
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10255
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
 *ULINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10258
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10259
    case function_ulint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10260
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10261
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10265
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10266
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10267
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10268
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10269
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10270
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10271
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10272
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10273
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10274
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10275
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10276
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10277
                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
 10278
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10279
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10280
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10281
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10284
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10287
    }/*function_ulint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10288
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10289
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10290
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10291
 *ULINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10292
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10293
    case function_ulint_to_dt :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10298
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10299
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10300
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10301
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10302
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10303
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10304
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10305
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10306
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10307
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10308
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10309
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10310
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10311
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10312
                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
 10313
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10314
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10315
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10316
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10317
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10318
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10319
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10320
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10321
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10322
    }/*function_ulint_to_dt*/
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
 *ULINT_TO_TOD
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
    case function_ulint_to_tod :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10331
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10332
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10333
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10334
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10335
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10336
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10337
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10338
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10339
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10343
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10344
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10345
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10346
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10347
                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
 10348
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10349
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10352
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10353
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10354
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10355
        }
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
    }/*function_ulint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10358
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10361
 *ULINT_TO_UDINT
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
    case function_ulint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10364
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10365
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10366
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10367
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10368
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10369
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10370
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10371
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10372
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10373
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10374
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10375
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10376
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10377
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10378
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10379
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10380
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10381
                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
 10382
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10383
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10384
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10385
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10386
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10387
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10388
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10389
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10390
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10391
    }/*function_ulint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10392
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10393
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10394
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10395
 *ULINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10396
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10397
    case function_ulint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10398
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10399
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10400
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10403
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10406
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10407
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10408
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10409
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10410
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10411
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10412
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10413
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10414
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10415
                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
 10416
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10417
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10418
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10419
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10420
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10423
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10424
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10425
    }/*function_ulint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10426
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10427
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
 *ULINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10430
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10431
    case function_ulint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10432
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10433
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10434
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10437
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10438
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10439
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10440
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10441
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10442
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10443
            {
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
                function_name = (symbol_c*)(new pragma_c("__uint_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10446
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10447
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10448
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10449
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10450
                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
 10451
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10452
                break;
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10458
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10459
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10460
    }/*function_ulint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10461
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10462
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10463
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10464
 *ULINT_TO_LWORD
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
    case function_ulint_to_lword :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10469
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10470
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10471
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10472
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10473
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10474
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10475
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10476
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10477
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10478
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10479
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10480
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10481
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10482
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10483
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10484
                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
 10485
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10486
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10487
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10491
            ERROR;
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
    }/*function_ulint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10495
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10496
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
 *ULINT_TO_UINT
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
    case function_ulint_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10501
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10502
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10503
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10504
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10505
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10506
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10507
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10508
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10509
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10510
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10511
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10512
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10513
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10514
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10515
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10516
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10517
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10518
                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
 10519
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10520
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10523
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10526
        }
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
    }/*function_ulint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10529
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10530
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10531
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10532
 *ULINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10533
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10534
    case function_ulint_to_lreal :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10537
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10538
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10539
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10540
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10543
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10544
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10545
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10546
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10547
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10548
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10549
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10550
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10551
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10552
                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
 10553
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10554
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10555
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10556
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10559
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10560
        }
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
    }/*function_ulint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10563
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10566
 *ULINT_TO_BYTE
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
    case function_ulint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10569
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10570
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10571
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10574
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10575
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10576
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10577
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10578
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10579
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10580
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10581
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10582
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10583
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10584
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10585
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10586
                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
 10587
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10588
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10593
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10594
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10595
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10596
    }/*function_ulint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10597
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10598
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
 *ULINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10601
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10602
    case function_ulint_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10603
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10604
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10605
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10606
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10607
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10608
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10609
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10610
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10611
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10612
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10613
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10614
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10615
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10616
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10617
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10618
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10619
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10620
                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
 10621
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10622
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10627
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10630
    }/*function_ulint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10631
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10632
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10633
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10634
 *ULINT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10635
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10636
    case function_ulint_to_bool :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10639
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10640
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10641
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10642
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10645
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10646
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10647
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10648
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10649
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10650
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10651
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10652
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10653
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10654
                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
 10655
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10656
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10662
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10663
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10664
    }/*function_ulint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10665
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10666
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10667
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10668
 *ULINT_TO_TIME
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
    case function_ulint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10671
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10672
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10673
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10674
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10675
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10676
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10679
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10680
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10681
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10682
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10683
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10684
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10685
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10686
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10687
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10688
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10689
                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
 10690
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10691
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10694
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10697
        }
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
    }/*function_ulint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10700
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10701
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10702
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10703
 *ULINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10704
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10705
    case function_ulint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10706
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10707
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10711
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10714
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10715
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10716
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10717
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10718
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10719
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10720
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10721
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10722
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10723
                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
 10724
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10725
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10726
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10727
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10728
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10729
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10730
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10731
        }
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
    }/*function_ulint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10734
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10735
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10736
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10737
 *BOOL_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10738
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10739
    case function_bool_to_real :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10744
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10745
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10746
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10747
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10748
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10749
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10750
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10751
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10752
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10753
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10754
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10755
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10756
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10757
                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
 10758
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10759
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10760
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10761
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10762
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10763
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10764
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10765
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10766
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10767
    }/*function_bool_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10768
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10769
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10770
/****
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10771
 *BOOL_TO_SINT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10772
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10773
    case function_bool_to_sint :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10774
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10775
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10776
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10777
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10778
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10779
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10780
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10781
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10782
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10783
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10784
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10785
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10786
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10787
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10788
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10789
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10790
                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
 10791
                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
 10792
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10793
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10794
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10795
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10796
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10797
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10798
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10799
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10800
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10801
    }/*function_bool_to_sint*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10802
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10803
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10804
/****
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10805
 *BOOL_TO_LINT
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
    case function_bool_to_lint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10810
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10811
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10812
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10813
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10814
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10815
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10816
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10817
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10818
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10819
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10820
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10821
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10822
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10823
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10824
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10825
                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
 10826
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10827
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10831
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10832
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10833
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10834
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10835
    }/*function_bool_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10836
    break;
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
 *BOOL_TO_DINT
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
    case function_bool_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10842
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10843
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10847
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10848
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10849
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10850
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10851
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10852
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10853
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10854
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10855
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10856
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10857
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10858
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10859
                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
 10860
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10861
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10862
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10863
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10864
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10865
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10866
            ERROR;
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
    }/*function_bool_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10870
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10871
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
 *BOOL_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10874
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10875
    case function_bool_to_date :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10878
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10879
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10880
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10881
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10882
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10883
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10884
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10885
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10886
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10889
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10890
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10891
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10892
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10893
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10894
                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
 10895
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10896
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10897
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10898
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10899
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10900
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10901
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10902
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10903
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10904
    }/*function_bool_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10905
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10906
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10907
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10908
 *BOOL_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10909
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10910
    case function_bool_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10911
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10912
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10913
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10916
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10917
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10918
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10919
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10920
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10921
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10922
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10923
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10924
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10925
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10926
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10927
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10928
                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
 10929
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10930
                break;
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10936
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10937
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10938
    }/*function_bool_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10939
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10940
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
 *BOOL_TO_DT
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
    case function_bool_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10947
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10948
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10949
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10950
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10951
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10952
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10953
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10954
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10955
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10956
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10957
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10958
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10959
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10960
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10961
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10962
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10963
                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
 10964
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10965
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10968
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10969
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10970
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10971
        }
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
    }/*function_bool_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10974
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10975
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10976
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10977
 *BOOL_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10978
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10979
    case function_bool_to_tod :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10982
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10985
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10988
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10989
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10990
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10994
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10995
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 10996
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10997
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10998
                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
 10999
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11000
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11001
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11002
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11003
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11004
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11005
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11006
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11007
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11008
    }/*function_bool_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11009
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11010
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11011
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11012
 *BOOL_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11013
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11014
    case function_bool_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11015
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11016
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11019
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11020
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11021
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11022
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11023
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11024
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11025
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11026
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11027
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11028
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11029
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11030
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11031
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11032
                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
 11033
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11034
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11039
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11042
    }/*function_bool_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11043
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11044
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11045
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11046
 *BOOL_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11047
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11048
    case function_bool_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11051
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11052
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11053
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11054
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11057
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11058
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11059
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11060
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11061
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11062
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11063
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11064
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11065
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11066
                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
 11067
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11068
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11069
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11073
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11076
    }/*function_bool_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11077
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11078
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11079
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11080
 *BOOL_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11081
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11082
    case function_bool_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11083
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11084
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11085
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11088
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11091
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11092
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11093
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11094
            {
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
                function_name = (symbol_c*)(new pragma_c("__bool_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11097
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11098
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11099
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11100
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11101
                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
 11102
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11103
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11104
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11105
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11106
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11107
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11108
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11111
    }/*function_bool_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11112
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11113
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11114
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11115
 *BOOL_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11116
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11117
    case function_bool_to_lword :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11123
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11126
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11127
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11128
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11129
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11130
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11131
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11132
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11133
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11134
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11135
                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
 11136
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11137
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11140
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11141
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11142
            ERROR;
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
    }/*function_bool_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11146
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11147
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11148
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11149
 *BOOL_TO_UINT
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
    case function_bool_to_uint :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11157
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11158
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11159
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11160
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11161
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11162
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11163
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11164
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11165
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11166
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11167
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11168
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11169
                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
 11170
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11171
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11177
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11178
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11179
    }/*function_bool_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11180
    break;
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
 *BOOL_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11184
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11185
    case function_bool_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11188
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11189
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11190
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11191
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11194
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11195
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11196
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11197
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11198
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11199
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11200
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11201
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11202
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11203
                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
 11204
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11205
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11208
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11209
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11210
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11211
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11212
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11213
    }/*function_bool_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11214
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11217
 *BOOL_TO_BYTE
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
    case function_bool_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11220
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11221
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11224
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11225
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11228
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11229
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11230
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11231
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11232
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11233
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11234
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11235
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11236
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11237
                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
 11238
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11239
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11240
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11241
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11242
            
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
            ERROR;
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
    }/*function_bool_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11248
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11251
 *BOOL_TO_USINT
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
    case function_bool_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11254
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11255
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11256
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11257
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11258
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11259
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11262
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11263
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11264
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11265
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11266
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11267
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11268
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11269
                  IN_type_symbol = last_type_symbol;
149
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::usint_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_bool_to_usint*/
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
 *BOOL_TO_ULINT
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_bool_to_ulint :
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
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11298
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11299
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11300
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11301
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11302
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11303
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11304
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11305
                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
 11306
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11307
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11313
        }
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
    }/*function_bool_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11316
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11319
 *BOOL_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11320
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11321
    case function_bool_to_time :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11324
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11327
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11330
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11331
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11332
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11333
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11334
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11335
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11336
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11337
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11338
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11339
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11340
                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
 11341
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11342
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11343
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11344
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11350
    }/*function_bool_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11351
    break;
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
/****
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11354
 *BOOL_TO_INT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11355
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11356
    case function_bool_to_int :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11357
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11358
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11359
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11360
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11361
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11362
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11363
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11364
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11365
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11366
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11367
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11368
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11369
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11370
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11371
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11372
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11373
                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
 11374
                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
 11375
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11376
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11379
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11380
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11381
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11382
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11383
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11384
    }/*function_bool_to_int*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11385
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11386
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11387
/****
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11388
 *TIME_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11389
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11390
    case function_time_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11391
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11392
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11393
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11394
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11395
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11396
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11397
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11398
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11399
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11400
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11401
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11402
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11403
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11404
                function_name = (symbol_c*)(new pragma_c("__time_to_real"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11405
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11406
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11407
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11408
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11409
                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
 11410
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11411
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11417
        }
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
    }/*function_time_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11420
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11421
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11422
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11423
 *TIME_TO_SINT
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
    case function_time_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11426
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11427
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11428
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11429
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11430
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11431
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11434
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11435
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11436
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11437
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11438
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11439
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11440
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11441
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11442
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11443
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11444
                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
 11445
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11446
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11447
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11448
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11451
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11454
    }/*function_time_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11455
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11456
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11457
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11458
 *TIME_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11459
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11460
    case function_time_to_lint :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11466
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11469
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11470
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11471
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11472
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11473
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11474
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11475
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11476
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11477
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11478
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11479
                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
 11480
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11481
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11482
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11483
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11486
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11487
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11488
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11489
    }/*function_time_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11490
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11491
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11492
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11493
 *TIME_TO_DINT
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
    case function_time_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11496
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11497
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11500
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11501
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11504
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11505
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11506
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11507
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11508
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11509
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11510
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11511
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11512
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11513
                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
 11514
                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
 11515
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11516
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11520
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11521
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11522
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11523
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11524
    }/*function_time_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11525
    break;
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
 *TIME_TO_DWORD
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
    case function_time_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11531
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11532
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11536
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11537
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11538
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11539
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11540
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11541
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11542
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11543
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11544
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11545
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11546
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11547
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11548
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11549
                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
 11550
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11551
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11552
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11553
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11554
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11555
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11556
            ERROR;
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
    }/*function_time_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11560
    break;
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
 *TIME_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11564
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11565
    case function_time_to_udint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11570
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11571
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11574
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11575
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11576
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11577
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11578
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11579
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11580
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11581
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11582
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11583
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11584
                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
 11585
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11586
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11587
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11588
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11592
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11593
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11594
    }/*function_time_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11595
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11596
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11597
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11598
 *TIME_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11599
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11600
    case function_time_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11601
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11602
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11603
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11606
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11607
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11608
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11609
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11610
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11611
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11612
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11615
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11616
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11617
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11618
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11619
                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
 11620
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11621
                break;
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11627
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11628
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11629
    }/*function_time_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11630
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11631
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
 *TIME_TO_STRING
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
    case function_time_to_string :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11638
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11639
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11640
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11641
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11642
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11643
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11644
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11645
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11646
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11647
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11648
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11649
                function_name = (symbol_c*)(new pragma_c("__time_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11650
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11651
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11652
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11653
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11654
                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
 11655
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11656
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11657
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11658
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11659
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11660
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11661
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11664
    }/*function_time_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11665
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11668
 *TIME_TO_LWORD
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
    case function_time_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11671
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11672
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11673
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11674
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11675
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11676
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11677
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11678
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11679
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11680
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11681
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11682
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11683
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11684
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11685
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11686
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11687
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11688
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11689
                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
 11690
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11691
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11692
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11693
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11694
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11695
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11696
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11697
        }
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
    }/*function_time_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11700
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11703
 *TIME_TO_UINT
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
    case function_time_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11706
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11707
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11708
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11711
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11712
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11713
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11714
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11715
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11716
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
149
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11720
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11721
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11722
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11723
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11724
                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
 11725
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11726
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11727
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11728
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11729
            
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
            ERROR;
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
    }/*function_time_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11735
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11738
 *TIME_TO_LREAL
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
    case function_time_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11743
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11744
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11745
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11746
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11747
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11748
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11749
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11750
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11751
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11752
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11753
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11754
                function_name = (symbol_c*)(new pragma_c("__time_to_real"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11755
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11756
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11757
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11758
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11759
                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
 11760
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11761
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11767
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11768
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11769
    }/*function_time_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11770
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11771
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11772
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11773
 *TIME_TO_BYTE
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
    case function_time_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11776
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11777
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11778
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11781
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11784
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11785
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11786
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11787
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11790
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11791
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11792
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11793
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11794
                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
 11795
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11796
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11797
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11798
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11799
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11800
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11801
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11804
    }/*function_time_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11805
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11806
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11807
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11808
 *TIME_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11809
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11810
    case function_time_to_usint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11815
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11816
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11817
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11818
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11819
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11820
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11821
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11822
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11823
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11824
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11825
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11826
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11827
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11828
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11829
                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
 11830
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11831
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11832
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11837
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11838
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11839
    }/*function_time_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11840
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11841
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
 *TIME_TO_ULINT
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
    case function_time_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11846
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11847
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11850
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11851
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11854
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11855
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11856
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11857
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11858
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11859
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11860
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11861
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11862
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11863
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11864
                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
 11865
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11866
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11867
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11868
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11869
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11870
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11871
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11872
        }
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
    }/*function_time_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11875
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11878
 *TIME_TO_INT
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
    case function_time_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11881
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11882
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11883
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11884
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11885
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11886
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11887
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11888
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11889
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11890
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11891
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11892
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11893
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11894
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11895
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11896
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11897
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11898
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11899
                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
 11900
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11901
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11902
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11903
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11904
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11905
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11906
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11909
    }/*function_time_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11910
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11911
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11912
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11913
 *INT_TO_REAL
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
    case function_int_to_real :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11918
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11919
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11920
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11921
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11922
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11923
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11924
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11925
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11926
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11927
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11928
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11929
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11930
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11931
                  IN_type_symbol = last_type_symbol;
149
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)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11933
                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
 11934
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11935
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11940
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11943
    }/*function_int_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11944
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11947
 *INT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11948
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11949
    case function_int_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11950
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11951
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11952
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11953
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11954
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11955
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11956
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11957
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11958
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11959
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11960
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11961
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11962
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11963
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11964
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11965
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11966
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11967
                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
 11968
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11969
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11970
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11971
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11974
            ERROR;
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
    }/*function_int_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11978
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11979
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11980
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11981
 *INT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11982
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11983
    case function_int_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11984
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11985
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11986
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11987
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11988
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11989
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11990
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11991
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11992
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11993
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11994
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11995
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11996
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11997
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11998
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 11999
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12000
                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
 12001
                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
 12002
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12003
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12004
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12005
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12011
    }/*function_int_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12012
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12013
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12014
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12015
 *INT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12016
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12017
    case function_int_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12018
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12019
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12020
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12021
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12022
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12023
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12024
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12025
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12026
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12027
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12028
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12029
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12030
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12031
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12032
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12033
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12034
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12035
                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
 12036
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12037
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12042
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12043
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12044
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12045
    }/*function_int_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12046
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12047
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12048
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12049
 *INT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12050
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12051
    case function_int_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12052
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12053
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12054
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12055
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12056
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12057
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12058
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12059
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12060
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12061
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12062
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12063
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12066
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12067
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12068
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12069
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12070
                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
 12071
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12072
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12073
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12074
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12075
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12076
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12077
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12078
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12079
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12080
    }/*function_int_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12081
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12082
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12083
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12084
 *INT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12085
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12086
    case function_int_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12087
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12088
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12089
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12092
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12095
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12096
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12097
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12098
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12099
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12100
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12101
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12102
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12103
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12104
                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
 12105
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12106
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12107
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12108
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12109
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12110
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12111
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12112
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12113
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12114
    }/*function_int_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12115
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12116
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12117
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12118
 *INT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12119
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12120
    case function_int_to_dt :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12126
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12129
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12130
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12131
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12132
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12133
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12134
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12135
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12136
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12137
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12138
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12139
                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
 12140
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12141
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12142
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12143
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12144
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12145
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12146
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12147
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12148
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12149
    }/*function_int_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12150
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12151
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
 *INT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12154
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12155
    case function_int_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12156
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12157
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12158
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12159
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12160
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12161
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12162
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12163
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12164
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12165
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12166
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12167
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12168
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12169
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12170
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12171
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12172
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12173
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12174
                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
 12175
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12176
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12177
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12178
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12179
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12180
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12181
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12182
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12183
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12184
    }/*function_int_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12185
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12186
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12187
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12188
 *INT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12189
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12190
    case function_int_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12191
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12192
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12193
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12194
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12195
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12196
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12197
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12198
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12199
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12200
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12201
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12202
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12203
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12204
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12205
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12206
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12207
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12208
                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
 12209
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12210
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12211
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12212
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12213
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12214
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12215
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12216
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12217
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12218
    }/*function_int_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12219
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12220
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12221
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12222
 *INT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12223
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12224
    case function_int_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12225
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12226
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12227
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12228
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12229
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12230
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12231
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12232
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12233
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12234
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12235
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12236
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12237
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12238
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12239
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12240
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12241
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12242
                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
 12243
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12244
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12245
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12246
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12247
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12248
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12249
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12250
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12251
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12252
    }/*function_int_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12253
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12254
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12255
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12256
 *INT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12257
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12258
    case function_int_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12259
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12260
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12261
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12262
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12263
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12264
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12265
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12266
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12267
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12268
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12269
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12270
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12271
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12272
                function_name = (symbol_c*)(new pragma_c("__sint_to_string"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12273
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12274
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12275
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12276
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12277
                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
 12278
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12279
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12280
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12281
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12282
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12283
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12284
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12285
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12286
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12287
    }/*function_int_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12288
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12289
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12290
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12291
 *INT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12292
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12293
    case function_int_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12294
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12295
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12296
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12297
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12298
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12299
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12300
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12301
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12302
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12303
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12304
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12305
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12306
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12307
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12308
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12309
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12310
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12311
                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
 12312
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12313
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12314
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12315
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12316
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12317
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12318
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12319
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12320
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12321
    }/*function_int_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12322
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12323
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12324
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12325
 *INT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12326
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12327
    case function_int_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12328
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12329
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12330
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12331
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12332
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12333
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12334
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12335
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12336
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12337
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12338
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12339
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12340
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12341
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12342
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12343
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12344
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12345
                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
 12346
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12347
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12348
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12349
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12350
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12351
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12352
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12353
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12354
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12355
    }/*function_int_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12356
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12357
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12358
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12359
 *INT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12360
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12361
    case function_int_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12362
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12363
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12364
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12365
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12366
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12367
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12368
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12369
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12370
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12371
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12372
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12373
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12374
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12375
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12376
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12377
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12378
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12379
                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
 12380
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12381
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12382
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12383
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12384
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12385
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12386
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12387
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12388
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12389
    }/*function_int_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12390
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12391
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12392
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12393
 *INT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12394
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12395
    case function_int_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12396
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12397
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12398
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12399
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12400
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12401
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12402
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12403
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12404
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12405
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12406
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12407
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12408
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12409
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12410
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12411
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12412
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12413
                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
 12414
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12415
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12416
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12417
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12418
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12419
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12420
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12421
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12422
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12423
    }/*function_int_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12424
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12425
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12426
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12427
 *INT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12428
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12429
    case function_int_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12430
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12431
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12432
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12433
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12434
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12435
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12436
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12437
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12438
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12439
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12440
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12441
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12442
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12443
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12444
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12445
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12446
                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
 12447
                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
 12448
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12449
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12450
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12451
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12452
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12453
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12454
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12455
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12456
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12457
    }/*function_int_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12458
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12459
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12460
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12461
 *INT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12462
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12463
    case function_int_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12464
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12465
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12466
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12467
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12468
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12469
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12470
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12471
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12472
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12473
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12474
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12475
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12476
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12477
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12478
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12479
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12480
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12481
                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
 12482
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12483
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12484
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12485
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12486
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12487
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12488
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12489
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12490
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12491
    }/*function_int_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12492
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12493
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12494
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12495
 *INT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12496
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12497
    case function_int_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12498
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12499
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12500
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12501
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12502
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12503
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12504
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12505
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12506
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12507
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12508
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12509
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12510
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12511
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12512
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12513
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12514
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12515
                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
 12516
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12517
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12518
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12519
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12520
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12521
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12522
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12523
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12524
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12525
    }/*function_int_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12526
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12527
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12528
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12529
 *INT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12530
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12531
    case function_int_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12532
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12533
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12534
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12535
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12536
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12537
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12538
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12539
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12540
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12541
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12542
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12543
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12544
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12545
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12546
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12547
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12548
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12549
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12550
                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
 12551
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12552
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12553
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12554
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12555
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12556
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12557
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12558
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12559
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12560
    }/*function_int_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12561
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12562
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12563
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12564
 *TRUNC
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12565
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12566
    case function_trunc :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12567
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12568
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12569
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12570
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12571
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12572
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12573
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12574
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12575
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12576
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12577
            if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12578
            {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12579
        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12580
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12581
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12582
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12583
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12584
                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
 12585
                function_type_prefix = (symbol_c*)(new pragma_c("int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12586
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12587
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12588
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12589
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12590
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12591
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12592
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12593
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12594
    }/*function_trunc*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12595
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12596
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12597
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12598
 *BCD_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12599
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12600
    case function_bcd_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12601
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12602
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12603
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12604
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12605
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12606
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12607
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12608
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12609
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12610
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12611
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12612
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12613
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12614
                function_name = (symbol_c*)(new pragma_c("__bcd_to_uint"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12615
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12616
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12617
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12618
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12619
                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
 12620
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12621
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12622
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12623
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12624
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12625
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12626
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12627
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12628
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12629
    }/*function_bcd_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12630
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12631
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12632
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12633
 *BCD_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12634
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12635
    case function_bcd_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12636
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12637
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12638
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12639
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12640
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12641
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12642
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12643
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12644
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12645
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12646
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12647
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12648
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12649
                function_name = (symbol_c*)(new pragma_c("__bcd_to_uint"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12650
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12651
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12652
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12653
                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
 12654
                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
 12655
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12656
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12657
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12658
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12659
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12660
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12661
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12662
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12663
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12664
    }/*function_bcd_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12665
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12666
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12667
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12668
 *BCD_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12669
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12670
    case function_bcd_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12671
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12672
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12673
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12674
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12675
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12676
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12677
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12678
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12679
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12680
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12681
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12682
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12683
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12684
                function_name = (symbol_c*)(new pragma_c("__bcd_to_uint"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12685
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12686
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12687
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12688
                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
 12689
                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
 12690
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12691
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12692
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12693
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12694
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12695
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12696
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12697
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12698
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12699
    }/*function_bcd_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12700
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12701
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12702
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12703
 *BCD_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12704
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12705
    case function_bcd_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12706
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12707
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12708
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12709
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12710
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12711
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12712
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12713
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12714
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12715
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12716
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12717
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12718
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12719
                function_name = (symbol_c*)(new pragma_c("__bcd_to_uint"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12720
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12721
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12722
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12723
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12724
                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
 12725
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12726
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12727
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12728
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12729
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12730
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12731
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12732
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12733
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12734
    }/*function_bcd_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12735
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12736
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12737
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12738
 *UDINT_TO_BCD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12739
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12740
    case function_udint_to_bcd :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12741
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12742
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12743
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12744
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12745
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12746
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12747
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12748
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12749
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12750
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12751
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12752
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12753
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12754
                function_name = (symbol_c*)(new pragma_c("__uint_to_bcd"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12755
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12756
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12757
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12758
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12759
                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
 12760
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12761
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12762
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12763
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12764
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12765
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12766
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12767
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12768
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12769
    }/*function_udint_to_bcd*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12770
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12771
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12772
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12773
 *UINT_TO_BCD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12774
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12775
    case function_uint_to_bcd :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12776
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12777
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12778
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12779
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12780
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12781
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12782
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12783
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12784
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12785
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12786
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12787
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12788
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12789
                function_name = (symbol_c*)(new pragma_c("__uint_to_bcd"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12790
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12791
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12792
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12793
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12794
                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
 12795
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12796
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12797
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12798
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12799
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12800
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12801
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12802
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12803
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12804
    }/*function_uint_to_bcd*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12805
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12806
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12807
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12808
 *USINT_TO_BCD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12809
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12810
    case function_usint_to_bcd :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12811
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12812
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12813
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12814
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12815
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12816
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12817
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12818
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12819
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12820
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12821
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12822
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12823
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12824
                function_name = (symbol_c*)(new pragma_c("__uint_to_bcd"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12825
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12826
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12827
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12828
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12829
                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
 12830
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12831
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12832
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12833
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12834
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12835
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12836
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12837
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12838
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12839
    }/*function_usint_to_bcd*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12840
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12841
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12842
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12843
 *ULINT_TO_BCD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12844
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12845
    case function_ulint_to_bcd :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12846
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12847
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12848
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12849
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12850
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12851
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12852
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12853
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12854
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12855
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12856
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
149
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12859
                function_name = (symbol_c*)(new pragma_c("__uint_to_bcd"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12860
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12861
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12862
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12863
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12864
                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
 12865
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12866
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12867
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12868
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12869
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12870
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12871
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12872
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12873
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12874
    }/*function_ulint_to_bcd*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12875
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12876
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12877
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12878
 *DATE_AND_TIME_TO_TIME_OF_DAY
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12879
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12880
    case function_date_and_time_to_time_of_day :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12881
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12882
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12883
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12884
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12885
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12886
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12887
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12888
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12889
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12890
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12891
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12892
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12893
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12894
                function_name = (symbol_c*)(new pragma_c("__date_and_time_to_time_of_day"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12895
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12896
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12897
                  IN_type_symbol = last_type_symbol;
149
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
                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
 12900
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12901
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12902
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12903
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12904
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12905
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12906
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12907
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12908
    }/*function_date_and_time_to_time_of_day*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12909
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12910
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12911
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12912
 *DATE_AND_TIME_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12913
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12914
    case function_date_and_time_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12915
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12916
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12917
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12918
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12919
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12920
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12921
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12922
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12923
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12924
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12925
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12926
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12927
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12928
                function_name = (symbol_c*)(new pragma_c("__date_and_time_to_date"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12929
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12930
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12931
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12932
                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
 12933
                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
 12934
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12935
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12936
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12937
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12938
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12939
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12940
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12941
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12942
    }/*function_date_and_time_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12943
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12944
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12945
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12946
 *ABS
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12947
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12948
    case function_abs :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12949
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12950
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12951
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12952
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12953
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12954
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12955
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12956
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12957
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12958
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12959
            if(IN_type_symbol == NULL || search_expression_type->is_num_type(IN_type_symbol))
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12960
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12961
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12962
                function_name = (symbol_c*)(new pragma_c("__abs_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12963
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12964
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12965
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12966
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12967
                symbol_c * return_type_symbol = IN_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12968
                function_type_suffix = IN_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12969
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12970
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12971
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12972
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12973
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12974
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12975
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12976
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12977
    }/*function_abs*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12978
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12979
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12980
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12981
 *SQRT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12982
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12983
    case function_sqrt :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12984
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12985
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12986
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12987
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12988
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12989
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12990
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12991
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12992
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12993
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12994
            if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12995
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12996
        
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 12997
                function_name = (symbol_c*)(new pragma_c("__sqrt_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12998
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 12999
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13000
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13001
                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
 13002
                symbol_c * return_type_symbol = IN_type_symbol;
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13003
                function_type_suffix = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13004
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13005
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13006
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13007
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13008
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13009
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13010
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13011
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13012
    }/*function_sqrt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13013
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13014
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13015
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13016
 *LN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13017
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13018
    case function_ln :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13019
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13020
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13021
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13022
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13023
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13024
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13025
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13026
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13027
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13028
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13029
            if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13030
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13031
        
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13032
                function_name = (symbol_c*)(new pragma_c("__ln_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13033
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13034
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13035
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13036
                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
 13037
                symbol_c * return_type_symbol = IN_type_symbol;
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13038
                function_type_suffix = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13039
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13040
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13041
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13042
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13043
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13044
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13045
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13046
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13047
    }/*function_ln*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13048
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13049
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13050
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13051
 *LOG
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13052
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13053
    case function_log :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13054
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13055
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13056
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13057
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13058
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13059
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13060
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13061
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13062
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13063
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13064
            if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13065
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13066
        
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13067
                function_name = (symbol_c*)(new pragma_c("__log_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13068
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13069
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13070
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13071
                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
 13072
                symbol_c * return_type_symbol = IN_type_symbol;
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13073
                function_type_suffix = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13074
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13075
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13076
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13077
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13078
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13079
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13080
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13081
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13082
    }/*function_log*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13083
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13084
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13085
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13086
 *EXP
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13087
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13088
    case function_exp :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13089
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13090
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13091
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13092
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13093
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13094
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13095
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13096
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13097
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13098
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13099
            if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13100
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13101
        
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13102
                function_name = (symbol_c*)(new pragma_c("__exp_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13103
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13104
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13105
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13106
                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
 13107
                symbol_c * return_type_symbol = IN_type_symbol;
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13108
                function_type_suffix = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13109
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13112
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13113
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13114
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13115
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13116
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13117
    }/*function_exp*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13118
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13119
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13120
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13121
 *SIN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13122
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13123
    case function_sin :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13124
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13125
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13126
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13127
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13128
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13129
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13130
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13131
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13132
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13133
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13134
            if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13135
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13136
        
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13137
                function_name = (symbol_c*)(new pragma_c("__sin_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13138
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13139
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13140
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13141
                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
 13142
                symbol_c * return_type_symbol = IN_type_symbol;
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13143
                function_type_suffix = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13144
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13145
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13146
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13147
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13148
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13149
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13150
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13151
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13152
    }/*function_sin*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13153
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13154
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13155
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13156
 *COS
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13157
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13158
    case function_cos :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13159
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13160
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13161
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13162
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13163
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13164
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13165
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13166
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13167
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13168
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13169
            if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13170
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13171
        
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13172
                function_name = (symbol_c*)(new pragma_c("__cos_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13173
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13174
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13175
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13176
                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
 13177
                symbol_c * return_type_symbol = IN_type_symbol;
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13178
                function_type_suffix = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13179
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13180
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13181
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13182
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13183
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13184
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13185
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13186
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13187
    }/*function_cos*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13188
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13189
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
 *TAN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13192
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13193
    case function_tan :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13194
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13195
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13196
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13197
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13198
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13199
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13200
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13201
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13202
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13203
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13204
            if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13205
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13206
        
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13207
                function_name = (symbol_c*)(new pragma_c("__tan_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13208
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13209
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13210
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13211
                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
 13212
                symbol_c * return_type_symbol = IN_type_symbol;
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13213
                function_type_suffix = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13214
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13215
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13216
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13217
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13218
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13219
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13220
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13221
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13222
    }/*function_tan*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13223
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13224
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13225
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13226
 *ASIN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13227
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13228
    case function_asin :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13229
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13230
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13231
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13232
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13233
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13234
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13235
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13236
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13237
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13238
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13239
            if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13240
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13241
        
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13242
                function_name = (symbol_c*)(new pragma_c("__asin_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13243
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13244
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13245
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13246
                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
 13247
                symbol_c * return_type_symbol = IN_type_symbol;
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13248
                function_type_suffix = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13249
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13250
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13251
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13252
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13253
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13254
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13255
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13256
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13257
    }/*function_asin*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13258
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13259
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13260
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13261
 *ACOS
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13262
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13263
    case function_acos :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13264
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13265
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13266
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13267
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13268
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13269
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13270
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13271
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13272
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13273
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13274
            if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13275
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13276
        
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13277
                function_name = (symbol_c*)(new pragma_c("__acos_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13278
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13279
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13280
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13281
                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
 13282
                symbol_c * return_type_symbol = IN_type_symbol;
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13283
                function_type_suffix = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13284
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13285
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13286
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13287
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13288
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13289
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13290
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13291
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13292
    }/*function_acos*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13293
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13294
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13295
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13296
 *ATAN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13297
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13298
    case function_atan :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13299
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13300
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13301
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13302
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13303
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13304
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13305
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13306
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13307
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13308
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13309
            if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13310
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13311
        
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13312
                function_name = (symbol_c*)(new pragma_c("__atan_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13313
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13314
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13315
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13316
                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
 13317
                symbol_c * return_type_symbol = IN_type_symbol;
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 13318
                function_type_suffix = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13319
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13320
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13321
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13322
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13323
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13324
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13325
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13326
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13327
    }/*function_atan*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13328
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13329
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13330
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13331
 *ADD
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13332
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13333
    case function_add :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13334
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13335
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13336
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13337
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13338
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13339
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13340
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13341
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13342
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13343
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13344
            if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
70
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
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13348
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13349
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13350
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13351
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13352
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13353
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13354
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13355
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13356
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13357
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13358
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13359
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13360
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13361
                    if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13362
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13363
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13364
                        function_name = (symbol_c*)(new pragma_c("__add_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13365
                        
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13366
                        if (nb_param < 2)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13367
                          nb_param = 2;
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 13368
                        char* nb_param_str = new char[10];
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13369
                        sprintf(nb_param_str, "%d", nb_param);
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 13370
                        ADD_PARAM_LIST((symbol_c*)(new integer_c((const char *)nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13371
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13372
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13373
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13374
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13375
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13376
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13377
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13378
                        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
 13379
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13380
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13381
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13382
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13383
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13384
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13385
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13386
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13387
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13388
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13389
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13390
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13391
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13392
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13393
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13394
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13395
                                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
 13396
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13397
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13398
                                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
 13399
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13400
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13401
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13402
                        symbol_c * return_type_symbol = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13403
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13404
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13405
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13406
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13407
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13408
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13409
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13410
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13411
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13412
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13413
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13414
            if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13415
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13416
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13417
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13418
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13419
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13420
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13421
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13422
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13423
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13424
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13425
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13426
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13427
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13428
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13429
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13430
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13431
                    if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13432
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13433
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13434
                        function_name = (symbol_c*)(new pragma_c("__time_add"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13435
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13436
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13437
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13438
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13439
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13440
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13441
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13442
                        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
 13443
                        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
 13444
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13445
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13446
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13447
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13448
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13449
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13450
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13451
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13452
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13453
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13454
            if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13455
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13456
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13457
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13458
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13459
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13460
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13461
                    symbol_c *IN2_type_symbol = NULL;
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
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13464
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13465
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13466
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13467
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13468
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13469
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13470
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13471
                    if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13472
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13473
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13474
                        function_name = (symbol_c*)(new pragma_c("__time_add"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13475
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13476
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13477
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13478
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13479
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13480
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13481
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13482
                        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
 13483
                        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
 13484
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13485
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13486
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13487
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13488
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13489
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13490
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13491
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13492
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13493
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13494
            if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13495
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13496
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13497
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13498
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13499
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13500
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13501
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13502
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13503
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13504
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13505
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13506
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13507
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13508
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13509
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13510
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13511
                    if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13512
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13513
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13514
                        function_name = (symbol_c*)(new pragma_c("__time_add"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13515
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13516
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13517
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13518
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13519
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13520
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13521
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13522
                        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
 13523
                        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
 13524
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13525
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13526
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13527
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13528
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13529
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13530
                }
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
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13534
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13535
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13536
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13537
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13538
    }/*function_add*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13539
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13540
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13541
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13542
 *MUL
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13543
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13544
    case function_mul :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13545
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13546
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13547
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13548
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13549
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13550
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13551
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13552
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13553
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13554
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13555
            if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13556
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13557
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13558
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13559
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13560
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13561
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13562
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13563
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13564
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13565
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13566
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13567
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13568
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13569
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13570
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13571
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13572
                    if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13573
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13574
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13575
                        function_name = (symbol_c*)(new pragma_c("__mul_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13576
                        
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13577
                        if (nb_param < 2)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13578
                          nb_param = 2;
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 13579
                        char* nb_param_str = new char[10];
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13580
                        sprintf(nb_param_str, "%d", nb_param);
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 13581
                        ADD_PARAM_LIST((symbol_c*)(new integer_c((const char *)nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13582
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13583
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13584
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13585
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13586
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13587
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13588
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13589
                        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
 13590
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13591
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13592
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13593
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13594
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13595
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13596
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13597
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13598
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13599
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13600
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13601
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13602
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13603
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13604
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13605
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13606
                                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
 13607
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13608
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13609
                                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
 13610
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13611
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13612
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13613
                        symbol_c * return_type_symbol = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13614
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13615
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13616
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13617
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13618
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13619
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13620
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13621
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13622
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13623
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13624
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13625
            if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 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
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13629
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13630
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13631
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13632
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13633
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13634
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13635
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13636
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13637
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13638
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13639
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13640
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13641
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13642
                    if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
70
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
                        function_name = (symbol_c*)(new pragma_c("__time_mul"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13646
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13647
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13648
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13649
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13650
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13651
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13652
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13653
                        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
 13654
                        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
 13655
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13656
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13657
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13658
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13659
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13660
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13661
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13662
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13663
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13664
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13665
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13666
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13667
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13668
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13669
    }/*function_mul*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13670
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13671
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13672
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13673
 *SUB
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13674
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13675
    case function_sub :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13676
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13677
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13678
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13679
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13680
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13681
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13682
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13683
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13684
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13685
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13686
            if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
70
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("IN2");
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 *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13693
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13694
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13695
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13696
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13697
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13698
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13699
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13700
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13701
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13702
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13703
                    if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13704
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13705
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13706
                        function_name = (symbol_c*)(new pragma_c("__sub_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13707
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13708
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13709
                          IN1_type_symbol = last_type_symbol;
149
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)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13711
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13712
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13713
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13714
                        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
 13715
                        symbol_c * return_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13716
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13717
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13718
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13719
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13720
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13721
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13722
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13723
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13724
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13725
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13726
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13727
            if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13728
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13729
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13730
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13731
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13732
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13733
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13734
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13735
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13736
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13737
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13738
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13739
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13740
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13741
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13742
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13743
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13744
                    if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13745
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13746
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13747
                        function_name = (symbol_c*)(new pragma_c("__time_sub"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13748
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13749
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13750
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13751
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13752
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13753
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13754
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13755
                        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
 13756
                        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
 13757
                        break;
70
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
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13761
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13762
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13763
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13764
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13765
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13766
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13767
            if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13768
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13769
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13770
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13771
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13772
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13773
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13774
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13775
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13776
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13777
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13778
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13779
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13780
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13781
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13782
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13783
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13784
                    if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13785
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13786
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13787
                        function_name = (symbol_c*)(new pragma_c("__time_sub"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13788
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13789
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13790
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13791
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13792
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13793
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13794
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13795
                        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
 13796
                        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
 13797
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13798
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13799
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13800
                    
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13801
                    if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13802
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13803
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13804
                        function_name = (symbol_c*)(new pragma_c("__time_sub"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13805
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13806
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13807
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13808
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13809
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13810
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13811
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13812
                        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
 13813
                        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
 13814
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13815
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13816
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13817
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13818
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13819
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13820
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13821
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13822
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13823
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13824
            if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13825
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13826
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13827
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13828
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13829
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13830
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13831
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13832
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13833
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13834
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13835
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13836
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13837
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13838
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13839
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13840
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13841
                    if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13842
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13843
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13844
                        function_name = (symbol_c*)(new pragma_c("__time_sub"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13845
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13846
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13847
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13848
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13849
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13850
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13851
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13852
                        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
 13853
                        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
 13854
                        break;
70
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
                    
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13858
                    if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13859
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13860
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13861
                        function_name = (symbol_c*)(new pragma_c("__time_sub"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13862
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13863
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13864
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13865
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13866
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13867
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13868
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13869
                        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
 13870
                        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
 13871
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13872
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13873
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13874
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13875
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13876
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13877
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13878
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13879
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13880
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13881
            if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13882
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13883
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13884
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13885
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13886
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13887
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13888
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13889
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13890
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13891
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13892
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13893
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13894
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13895
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13896
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13897
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13898
                    if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13899
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13900
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13901
                        function_name = (symbol_c*)(new pragma_c("__time_sub"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13902
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13903
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13904
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13905
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13906
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13907
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13908
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13909
                        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
 13910
                        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
 13911
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13912
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13913
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13914
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13915
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13916
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13917
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13918
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13919
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13920
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13921
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13922
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13923
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13924
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13925
    }/*function_sub*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13926
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13927
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13928
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13929
 *DIV
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13930
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13931
    case function_div :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13932
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13933
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13937
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13938
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13939
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13940
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13941
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13942
            if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13943
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13944
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13945
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13946
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13947
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13948
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13949
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13950
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13951
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13952
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13953
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13954
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13955
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13956
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13957
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13958
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13959
                    if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13960
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13961
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13962
                        function_name = (symbol_c*)(new pragma_c("__div_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13963
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13964
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13965
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13966
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13967
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13968
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13969
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13970
                        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
 13971
                        symbol_c * return_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13972
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13973
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13974
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13975
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13976
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13977
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13978
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13979
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13980
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13981
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13982
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13983
            if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13984
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13985
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13986
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13987
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13988
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13989
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13990
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13991
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13992
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13993
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13994
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13995
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13996
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13997
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13998
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 13999
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14000
                    if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14001
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14002
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14003
                        function_name = (symbol_c*)(new pragma_c("__time_div"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14004
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14005
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14006
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14007
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14008
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14009
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14010
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14011
                        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
 14012
                        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
 14013
                        break;
70
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
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14017
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14018
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14019
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14020
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14021
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14022
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14023
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14024
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14025
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14026
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14027
    }/*function_div*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14028
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14029
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14030
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14031
 *MOD
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14032
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14033
    case function_mod :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14034
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14035
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14036
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14037
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14038
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14039
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14040
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14041
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14042
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14043
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14044
            if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14045
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14046
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14047
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14048
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14049
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14050
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14051
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14052
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14053
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14054
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14055
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14056
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14057
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14058
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14059
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14060
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14061
                    if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14062
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14063
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14064
                        function_name = (symbol_c*)(new pragma_c("__mod_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14065
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14066
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14067
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14068
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14069
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14070
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14071
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14072
                        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
 14073
                        symbol_c * return_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14074
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14075
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14076
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14077
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14078
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14079
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14080
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14081
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14082
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14083
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14084
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14085
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14086
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14087
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14088
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14089
    }/*function_mod*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14090
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14091
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14092
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14093
 *EXPT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14094
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14095
    case function_expt :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14096
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14097
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14098
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14099
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14100
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14101
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14102
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14103
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14104
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14105
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14106
            if(IN1_type_symbol == NULL || search_expression_type->is_real_type(IN1_type_symbol))
70
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
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14110
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14111
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14112
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14113
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14114
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14115
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14116
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14117
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14118
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14119
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14120
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14121
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14122
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14123
                    if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14124
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14125
                
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 14126
                        function_name = (symbol_c*)(new pragma_c("__expt_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14127
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14128
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14129
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14130
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14131
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14132
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14133
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14134
                        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
 14135
                        symbol_c * return_type_symbol = last_type_symbol;
165
83963465b773 Bug on standard function not defined with EN/ENO fixed
lbessard
parents: 154
diff changeset
 14136
                        function_type_suffix = IN1_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14137
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14138
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14139
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14140
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14141
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14142
                    ERROR;
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
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14146
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14147
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14148
            ERROR;
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
    }/*function_expt*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14152
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14153
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14154
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14155
 *MOVE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14156
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14157
    case function_move :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14158
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14159
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14160
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14161
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14162
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14163
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14164
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14165
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14166
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14167
            
153
6aed920024f9 Modifying MOVE interface
greg
parents: 149
diff changeset
 14168
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14169
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14170
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14171
                function_name = (symbol_c*)(new pragma_c("__move_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14172
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14173
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14174
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14175
                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
 14176
                symbol_c * return_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14177
                function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14178
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14179
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14180
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14181
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14182
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14183
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14184
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14185
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14186
    }/*function_move*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14187
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14188
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14189
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14190
 *SHL
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14191
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14192
    case function_shl :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14193
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14194
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14195
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14196
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14197
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14198
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14199
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14200
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14201
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14202
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14203
            if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14204
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14205
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14206
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14207
                    identifier_c param_name("N");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14208
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14209
                    symbol_c *N_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14210
                    symbol_c *N_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14211
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14212
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14213
                    if (N_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14214
                      N_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14215
                    if (N_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14216
                      N_type_symbol = search_expression_type->get_type(N_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14217
                      last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14218
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14219
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14220
                    if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14221
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14222
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14223
                        function_name = (symbol_c*)(new pragma_c("__shl_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14224
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14225
                        if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14226
                          IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14227
                        ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14228
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14229
                        if (N_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14230
                          N_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14231
                        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
 14232
                        symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14233
                        function_type_suffix = IN_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14234
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14235
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14236
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14237
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14238
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14239
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14240
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14241
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14242
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14243
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14244
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14245
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14246
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14247
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14248
    }/*function_shl*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14249
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14250
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14251
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14252
 *SHR
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14253
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14254
    case function_shr :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14255
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14256
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14257
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14258
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14259
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14260
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14261
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14262
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14263
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14264
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14265
            if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14266
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14267
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14268
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14269
                    identifier_c param_name("N");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14270
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14271
                    symbol_c *N_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14272
                    symbol_c *N_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14273
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14274
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14275
                    if (N_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14276
                      N_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14277
                    if (N_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14278
                      N_type_symbol = search_expression_type->get_type(N_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14279
                      last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14280
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14281
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14282
                    if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14283
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14284
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14285
                        function_name = (symbol_c*)(new pragma_c("__shr_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14286
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14287
                        if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14288
                          IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14289
                        ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14290
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14291
                        if (N_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14292
                          N_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14293
                        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
 14294
                        symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14295
                        function_type_suffix = IN_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14296
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14297
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14298
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14299
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14300
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14301
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14302
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14303
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14304
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14305
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14306
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14307
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14308
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14309
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14310
    }/*function_shr*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14311
    break;
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
 *ROR
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14315
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14316
    case function_ror :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14317
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14318
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14319
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14320
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14321
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14322
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14323
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14324
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14325
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14326
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14327
            if(IN_type_symbol == NULL || search_expression_type->is_nbinary_type(IN_type_symbol))
70
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
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14331
                    identifier_c param_name("N");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14332
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14333
                    symbol_c *N_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14334
                    symbol_c *N_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14335
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14336
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14337
                    if (N_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14338
                      N_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14339
                    if (N_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14340
                      N_type_symbol = search_expression_type->get_type(N_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14341
                      last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14342
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14343
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14344
                    if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14345
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14346
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14347
                        function_name = (symbol_c*)(new pragma_c("__ror_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14348
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14349
                        if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14350
                          IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14351
                        ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14352
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14353
                        if (N_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14354
                          N_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14355
                        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
 14356
                        symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14357
                        function_type_suffix = IN_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14358
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14359
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14360
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14361
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14362
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14363
                    ERROR;
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
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14367
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14368
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14369
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14370
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14371
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14372
    }/*function_ror*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14373
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14374
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14375
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14376
 *ROL
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14377
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14378
    case function_rol :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14379
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14380
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14381
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14382
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14383
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14384
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14385
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14386
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14387
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14388
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14389
            if(IN_type_symbol == NULL || search_expression_type->is_nbinary_type(IN_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14390
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14391
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14392
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14393
                    identifier_c param_name("N");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14394
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14395
                    symbol_c *N_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14396
                    symbol_c *N_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14397
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14398
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14399
                    if (N_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14400
                      N_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14401
                    if (N_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14402
                      N_type_symbol = search_expression_type->get_type(N_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14403
                      last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14404
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14405
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14406
                    if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14407
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14408
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14409
                        function_name = (symbol_c*)(new pragma_c("__rol_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14410
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14411
                        if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14412
                          IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14413
                        ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14414
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14415
                        if (N_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14416
                          N_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14417
                        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
 14418
                        symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14419
                        function_type_suffix = IN_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14420
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14421
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14422
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14423
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14424
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14425
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14426
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14427
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14428
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14429
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14430
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14431
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14432
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14433
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14434
    }/*function_rol*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14435
    break;
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
 *AND
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14439
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14440
    case function_and :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14441
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14442
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14443
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14444
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14445
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14446
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14447
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14448
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14449
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14450
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14451
            if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14452
            {
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
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14456
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14457
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14458
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14459
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14460
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14461
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14462
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14463
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14464
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14465
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14466
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14467
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14468
                    if(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14469
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14470
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14471
                        function_name = (symbol_c*)(new pragma_c("__and_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14472
                        
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14473
                        if (nb_param < 2)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14474
                          nb_param = 2;
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 14475
                        char* nb_param_str = new char[10];
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14476
                        sprintf(nb_param_str, "%d", nb_param);
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 14477
                        ADD_PARAM_LIST((symbol_c*)(new integer_c((const char *)nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14478
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14479
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14480
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14481
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14482
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14483
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14484
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14485
                        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
 14486
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14487
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14488
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14489
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14490
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14491
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14492
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14493
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14494
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14495
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14496
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14497
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14498
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14499
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14500
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14501
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14502
                                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
 14503
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14504
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14505
                                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
 14506
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14507
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14508
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14509
                        symbol_c * return_type_symbol = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14510
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14511
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14512
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14513
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14514
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14515
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14516
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14517
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14518
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14519
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14520
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14521
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14522
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14523
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14524
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14525
    }/*function_and*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14526
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14527
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14528
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14529
 *OR
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14530
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14531
    case function_or :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14532
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14533
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14534
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14535
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14536
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14537
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14538
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14539
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14540
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14541
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14542
            if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14543
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14544
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14545
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14546
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14547
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14548
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14549
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14550
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14551
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14552
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14553
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14554
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14555
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14556
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14557
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14558
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14559
                    if(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14560
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14561
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14562
                        function_name = (symbol_c*)(new pragma_c("__or_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14563
                        
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14564
                        if (nb_param < 2)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14565
                          nb_param = 2;
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 14566
                        char* nb_param_str = new char[10];
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14567
                        sprintf(nb_param_str, "%d", nb_param);
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 14568
                        ADD_PARAM_LIST((symbol_c*)(new integer_c((const char *)nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14569
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14570
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14571
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14572
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14573
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14574
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14575
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14576
                        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
 14577
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14578
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14579
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14580
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14581
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14582
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14583
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14584
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14585
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14586
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14587
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14588
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14589
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14590
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14591
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14592
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14593
                                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
 14594
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14595
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14596
                                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
 14597
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14598
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14599
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14600
                        symbol_c * return_type_symbol = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14601
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14602
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14603
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14604
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14605
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14606
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14607
                    ERROR;
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
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14611
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14612
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14613
            ERROR;
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
    }/*function_or*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14617
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14618
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14619
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14620
 *XOR
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14621
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14622
    case function_xor :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14623
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14624
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14628
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14629
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14630
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14631
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14632
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14633
            if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14634
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14635
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14636
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14637
                    identifier_c param_name("IN2");
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 *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14640
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14641
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14642
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14643
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14644
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14645
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14646
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14647
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14648
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14649
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14650
                    if(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14651
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14652
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14653
                        function_name = (symbol_c*)(new pragma_c("__xor_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14654
                        
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14655
                        if (nb_param < 2)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14656
                          nb_param = 2;
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 14657
                        char* nb_param_str = new char[10];
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14658
                        sprintf(nb_param_str, "%d", nb_param);
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 14659
                        ADD_PARAM_LIST((symbol_c*)(new integer_c((const char *)nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14660
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14661
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14662
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14663
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14664
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14665
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14666
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14667
                        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
 14668
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14669
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14670
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14671
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14672
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14673
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14674
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14675
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14676
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14677
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14678
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14679
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14680
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14681
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14682
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14683
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14684
                                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
 14685
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14686
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14687
                                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
 14688
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14689
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14690
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14691
                        symbol_c * return_type_symbol = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14692
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14693
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14694
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14695
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14696
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14697
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14698
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14699
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14700
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14701
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14702
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14703
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14704
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14705
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14706
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14707
    }/*function_xor*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14708
    break;
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
 *NOT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14712
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14713
    case function_not :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14714
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14715
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14716
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14717
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14718
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14719
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14720
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14721
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14722
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14723
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14724
            if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14725
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14726
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14727
                function_name = (symbol_c*)(new pragma_c("__not_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14728
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14729
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14730
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14731
                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
 14732
                symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14733
                function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14734
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14735
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14736
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14737
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14738
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14739
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14740
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14741
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14742
    }/*function_not*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14743
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14744
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14745
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14746
 *SEL
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14747
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14748
    case function_sel :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14749
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14750
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14751
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_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14754
            symbol_c *G_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14755
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14756
            symbol_c *G_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14757
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14758
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14759
            if(G_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14760
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14761
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14762
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14763
                    identifier_c param_name("IN0");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14764
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14765
                    symbol_c *IN0_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14766
                    symbol_c *IN0_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14767
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14768
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14769
                    if (IN0_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14770
                      IN0_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14771
                    if (IN0_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14772
                      IN0_type_symbol = search_expression_type->get_type(IN0_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14773
                      last_type_symbol = last_type_symbol && IN0_type_symbol && search_expression_type->is_same_type(IN0_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN0_type_symbol, last_type_symbol) : IN0_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14774
                    }
70
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
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14778
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14779
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14780
                            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14781
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14782
                            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14783
                            symbol_c *IN1_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14784
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14785
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14786
                            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14787
                              IN1_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14788
                            if (IN1_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14789
                              IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14790
                              last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14791
                            }
70
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
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14795
                        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14796
                                function_name = (symbol_c*)(new pragma_c("__sel_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14797
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14798
                                if (G_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14799
                                  G_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14800
                                ADD_PARAM_LIST(G_param_value, G_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14801
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14802
                                if (IN0_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14803
                                  IN0_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14804
                                ADD_PARAM_LIST(IN0_param_value, IN0_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14805
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14806
                                if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14807
                                  IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14808
                                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
 14809
                                symbol_c * return_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14810
                                function_type_suffix = IN0_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14811
                                break;
70
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
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14815
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14816
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14817
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14818
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14819
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14820
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14821
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14822
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14823
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14824
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14825
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14826
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14827
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14828
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14829
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14830
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14831
    }/*function_sel*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14832
    break;
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
 *MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14836
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14837
    case function_max :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14838
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14839
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14840
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14841
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14842
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14843
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14844
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14845
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14846
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14847
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14848
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14849
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14850
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14851
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14852
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14853
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14854
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14855
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14856
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14857
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14858
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14859
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14860
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14861
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14862
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14863
                    }
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14864
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14865
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14866
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14867
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14868
                        function_name = (symbol_c*)(new pragma_c("__max_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14869
                        
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14870
                        if (nb_param < 2)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14871
                          nb_param = 2;
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 14872
                        char* nb_param_str = new char[10];
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14873
                        sprintf(nb_param_str, "%d", nb_param);
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 14874
                        ADD_PARAM_LIST((symbol_c*)(new integer_c((const char *)nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14875
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14876
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14877
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14878
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14879
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14880
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14881
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14882
                        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
 14883
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14884
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14885
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14886
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14887
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14888
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14889
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14890
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14891
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14892
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14893
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14894
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14895
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14896
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14897
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14898
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14899
                                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
 14900
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14901
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14902
                                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
 14903
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14904
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14905
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14906
                        symbol_c * return_type_symbol = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14907
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14908
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14909
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14910
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14911
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14912
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14913
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14914
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14915
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14916
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14917
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14918
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14919
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14920
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14921
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14922
    }/*function_max*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14923
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14924
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14925
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14926
 *MIN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14927
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14928
    case function_min :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14929
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14930
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14931
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14932
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14933
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14934
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14935
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14936
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14937
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14938
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14939
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14940
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14941
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14942
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14943
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14944
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14945
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14946
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14947
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14948
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14949
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14950
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14951
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14952
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14953
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14954
                    }
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14955
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14956
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14957
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14958
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14959
                        function_name = (symbol_c*)(new pragma_c("__min_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14960
                        
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14961
                        if (nb_param < 2)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14962
                          nb_param = 2;
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 14963
                        char* nb_param_str = new char[10];
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14964
                        sprintf(nb_param_str, "%d", nb_param);
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 14965
                        ADD_PARAM_LIST((symbol_c*)(new integer_c((const char *)nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14966
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14967
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14968
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14969
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14970
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14971
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 14972
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14973
                        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
 14974
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14975
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14976
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14977
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14978
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14979
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14980
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14981
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14982
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14983
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14984
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14985
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14986
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14987
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14988
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14989
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14990
                                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
 14991
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14992
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14993
                                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
 14994
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14995
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14996
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14997
                        symbol_c * return_type_symbol = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14998
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14999
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15000
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15001
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15002
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15003
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15004
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15005
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15006
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15007
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15008
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15009
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15010
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15011
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15012
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15013
    }/*function_min*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15014
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15015
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15016
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15017
 *LIMIT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15018
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15019
    case function_limit :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15020
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15021
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15022
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15023
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15024
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15025
            symbol_c *MN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15026
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15027
            symbol_c *MN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15028
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15029
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15030
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15031
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15032
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15033
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15034
                    identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15035
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15036
                    symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15037
                    symbol_c *IN_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15038
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15039
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15040
                    if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15041
                      IN_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15042
                    if (IN_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15043
                      IN_type_symbol = search_expression_type->get_type(IN_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15044
                      last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15045
                    }
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15046
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15047
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15048
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15049
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15050
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15051
                            identifier_c param_name("MX");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15052
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15053
                            symbol_c *MX_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15054
                            symbol_c *MX_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15055
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15056
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15057
                            if (MX_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15058
                              MX_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15059
                            if (MX_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15060
                              MX_type_symbol = search_expression_type->get_type(MX_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15061
                              last_type_symbol = last_type_symbol && MX_type_symbol && search_expression_type->is_same_type(MX_type_symbol, last_type_symbol) ? search_expression_type->common_type(MX_type_symbol, last_type_symbol) : MX_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15062
                            }
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15063
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15064
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15065
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15066
                        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15067
                                function_name = (symbol_c*)(new pragma_c("__limit_"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15068
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15069
                                if (MN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15070
                                  MN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15071
                                ADD_PARAM_LIST(MN_param_value, MN_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15072
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15073
                                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15074
                                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15075
                                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15076
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15077
                                if (MX_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15078
                                  MX_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15079
                                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
 15080
                                symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15081
                                function_type_suffix = IN_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15082
                                break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15083
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15084
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15085
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15086
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15087
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15088
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15089
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15090
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15091
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15092
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15093
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15094
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15095
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15096
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15097
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15098
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15099
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15100
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15101
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15102
    }/*function_limit*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15103
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15104
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15105
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15106
 *MUX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15107
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15108
    case function_mux :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15109
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15110
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15111
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15112
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15113
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15114
            symbol_c *K_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15115
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15116
            symbol_c *K_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15117
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15118
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15119
            if(K_type_symbol == NULL || search_expression_type->is_integer_type(K_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15120
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15121
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15122
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15123
                    identifier_c param_name("IN0");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15124
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15125
                    symbol_c *IN0_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15126
                    symbol_c *IN0_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15127
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15128
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15129
                    if (IN0_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15130
                      IN0_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15131
                    if (IN0_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15132
                      IN0_type_symbol = search_expression_type->get_type(IN0_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15133
                      last_type_symbol = last_type_symbol && IN0_type_symbol && search_expression_type->is_same_type(IN0_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN0_type_symbol, last_type_symbol) : IN0_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15134
                    }
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15135
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15136
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15137
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15138
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15139
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15140
                            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15141
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15142
                            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15143
                            symbol_c *IN1_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15144
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15145
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15146
                            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15147
                              IN1_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15148
                            if (IN1_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15149
                              IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15150
                              last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15151
                            }
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15152
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15153
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15154
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15155
                        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15156
                                function_name = (symbol_c*)(new pragma_c("__mux_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15157
                                
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15158
                                if (nb_param < 3)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15159
                                  nb_param = 3;
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 15160
                                char* nb_param_str = new char[10];
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15161
                                sprintf(nb_param_str, "%d", nb_param);
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 15162
                                ADD_PARAM_LIST((symbol_c*)(new integer_c((const char *)nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15163
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15164
                                if (K_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15165
                                  K_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15166
                                ADD_PARAM_LIST(K_param_value, K_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15167
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15168
                                if (IN0_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15169
                                  IN0_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15170
                                ADD_PARAM_LIST(IN0_param_value, IN0_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15171
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15172
                                if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15173
                                  IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15174
                                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
 15175
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15176
                                int base_num = 2;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15177
                                symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15178
                                do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15179
                                    char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15180
                                    sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15181
                                    identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15182
                                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15183
                                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15184
                                    param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15185
                                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15186
                                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15187
                                    if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15188
                                      param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15189
                                    if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15190
                                        symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15191
                                        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
 15192
                                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15193
                                        /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15194
                                        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
 15195
                                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15196
                                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15197
                                }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15198
                                symbol_c * return_type_symbol = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15199
                                function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15200
                                break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15201
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15202
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15203
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15204
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15205
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15206
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15207
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15208
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15209
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15210
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15211
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15212
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15213
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15214
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15215
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15216
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15217
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15218
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15219
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15220
    }/*function_mux*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15221
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15222
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15223
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15224
 *GT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15225
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15226
    case function_gt :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15227
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15228
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15229
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15230
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15231
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15232
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15233
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15234
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15235
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15236
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15237
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15238
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15239
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15240
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15241
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15242
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15243
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15244
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15245
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15246
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15247
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15248
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15249
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15250
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15251
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15252
                    }
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15253
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15254
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15255
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15256
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15257
                        function_name = (symbol_c*)(new pragma_c("__gt_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15258
                        
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15259
                        if (nb_param < 2)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15260
                          nb_param = 2;
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 15261
                        char* nb_param_str = new char[10];
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15262
                        sprintf(nb_param_str, "%d", nb_param);
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 15263
                        ADD_PARAM_LIST((symbol_c*)(new integer_c((const char *)nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15264
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15265
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15266
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15267
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15268
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15269
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15270
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15271
                        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
 15272
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15273
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15274
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15275
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15276
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15277
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15278
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15279
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15280
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15281
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15282
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15283
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15284
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15285
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15286
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15287
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15288
                                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
 15289
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15290
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15291
                                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
 15292
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15293
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15294
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15295
                        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
 15296
                        function_type_suffix = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15297
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15298
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15299
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15300
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15301
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15302
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15303
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15304
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15305
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15306
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15307
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15308
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15309
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15310
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15311
    }/*function_gt*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15312
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15313
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15314
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15315
 *GE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15316
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15317
    case function_ge :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15318
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15319
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15320
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15321
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15322
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15323
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15324
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15325
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15326
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15327
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15328
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15329
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15330
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15331
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15332
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15333
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15334
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15335
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15336
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15337
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15338
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15339
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15340
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15341
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15342
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15343
                    }
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15344
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15345
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15346
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15347
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15348
                        function_name = (symbol_c*)(new pragma_c("__ge_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15349
                        
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15350
                        if (nb_param < 2)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15351
                          nb_param = 2;
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 15352
                        char* nb_param_str = new char[10];
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15353
                        sprintf(nb_param_str, "%d", nb_param);
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 15354
                        ADD_PARAM_LIST((symbol_c*)(new integer_c((const char *)nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15355
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15356
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15357
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15358
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15359
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15360
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15361
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15362
                        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
 15363
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15364
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15365
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15366
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15367
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15368
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15369
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15370
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15371
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15372
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15373
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15374
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15375
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15376
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15377
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15378
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15379
                                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
 15380
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15381
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15382
                                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
 15383
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15384
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15385
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15386
                        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
 15387
                        function_type_suffix = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15388
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15389
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15390
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15391
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15392
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15393
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15394
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15395
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15396
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15397
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15398
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15399
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15400
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15401
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15402
    }/*function_ge*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15403
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15404
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15405
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15406
 *EQ
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15407
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15408
    case function_eq :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15409
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15410
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15411
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15412
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15413
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15414
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15415
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15416
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15417
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15418
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15419
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15420
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15421
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15422
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15423
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15424
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15425
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15426
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15427
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15428
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15429
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15430
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15431
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15432
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15433
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15434
                    }
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15435
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15436
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15437
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15438
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15439
                        function_name = (symbol_c*)(new pragma_c("__eq_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15440
                        
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15441
                        if (nb_param < 2)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15442
                          nb_param = 2;
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 15443
                        char* nb_param_str = new char[10];
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15444
                        sprintf(nb_param_str, "%d", nb_param);
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 15445
                        ADD_PARAM_LIST((symbol_c*)(new integer_c((const char *)nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15446
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15447
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15448
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15449
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15450
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15451
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15452
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15453
                        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
 15454
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15455
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15456
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15457
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15458
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15459
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15460
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15461
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15462
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15463
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15464
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15465
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15466
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15467
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15468
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15469
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15470
                                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
 15471
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15472
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15473
                                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
 15474
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15475
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15476
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15477
                        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
 15478
                        function_type_suffix = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15479
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15480
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15481
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15482
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15483
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15484
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15485
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15486
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15487
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15488
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15489
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15490
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15491
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15492
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15493
    }/*function_eq*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15494
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15495
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15496
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15497
 *LT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15498
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15499
    case function_lt :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15500
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15501
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15502
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15503
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15504
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15505
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15506
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15507
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15508
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15509
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15510
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15511
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15512
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15513
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15514
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15515
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15516
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15517
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15518
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15519
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15520
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15521
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15522
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15523
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15524
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15525
                    }
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15526
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15527
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15528
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15529
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15530
                        function_name = (symbol_c*)(new pragma_c("__lt_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15531
                        
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15532
                        if (nb_param < 2)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15533
                          nb_param = 2;
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 15534
                        char* nb_param_str = new char[10];
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15535
                        sprintf(nb_param_str, "%d", nb_param);
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 15536
                        ADD_PARAM_LIST((symbol_c*)(new integer_c((const char *)nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15537
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15538
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15539
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15540
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15541
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15542
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15543
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15544
                        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
 15545
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15546
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15547
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15548
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15549
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15550
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15551
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15552
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15553
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15554
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15555
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15556
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15557
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15558
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15559
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15560
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15561
                                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
 15562
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15563
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15564
                                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
 15565
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15566
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15567
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15568
                        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
 15569
                        function_type_suffix = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15570
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15571
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15572
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15573
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15574
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15575
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15576
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15577
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15578
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15579
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15580
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15581
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15582
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15583
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15584
    }/*function_lt*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15585
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15586
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15587
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15588
 *LE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15589
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15590
    case function_le :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15591
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15592
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15593
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15594
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15595
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15596
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15597
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15598
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15599
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15600
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15601
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15602
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15603
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15604
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15605
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15606
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15607
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15608
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15609
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15610
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15611
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15612
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15613
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15614
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15615
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15616
                    }
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15617
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15618
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15619
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15620
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15621
                        function_name = (symbol_c*)(new pragma_c("__le_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15622
                        
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15623
                        if (nb_param < 2)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15624
                          nb_param = 2;
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 15625
                        char* nb_param_str = new char[10];
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15626
                        sprintf(nb_param_str, "%d", nb_param);
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 15627
                        ADD_PARAM_LIST((symbol_c*)(new integer_c((const char *)nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15628
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15629
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15630
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15631
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15632
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15633
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15634
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15635
                        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
 15636
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15637
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15638
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15639
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15640
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15641
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15642
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15643
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15644
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15645
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15646
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15647
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15648
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15649
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15650
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15651
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15652
                                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
 15653
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15654
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15655
                                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
 15656
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15657
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15658
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15659
                        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
 15660
                        function_type_suffix = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15661
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15662
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15663
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15664
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15665
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15666
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15667
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15668
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15669
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15670
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15671
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15672
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15673
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15674
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15675
    }/*function_le*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15676
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15677
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15678
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15679
 *NE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15680
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15681
    case function_ne :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15682
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15683
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15684
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15685
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15686
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15687
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15688
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15689
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15690
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15691
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15692
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15693
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15694
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15695
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15696
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15697
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15698
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15699
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15700
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15701
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15702
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15703
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15704
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15705
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15706
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15707
                    }
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15708
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15709
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15710
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15711
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15712
                        function_name = (symbol_c*)(new pragma_c("__ne_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15713
                        
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15714
                        if (nb_param < 2)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15715
                          nb_param = 2;
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 15716
                        char* nb_param_str = new char[10];
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15717
                        sprintf(nb_param_str, "%d", nb_param);
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 15718
                        ADD_PARAM_LIST((symbol_c*)(new integer_c((const char *)nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15719
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15720
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15721
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15722
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15723
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15724
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15725
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15726
                        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
 15727
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15728
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15729
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15730
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15731
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15732
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15733
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15734
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15735
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15736
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15737
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15738
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15739
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15740
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15741
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15742
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15743
                                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
 15744
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15745
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15746
                                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
 15747
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15748
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15749
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15750
                        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
 15751
                        function_type_suffix = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15752
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15753
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15754
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15755
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15756
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15757
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15758
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15759
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15760
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15761
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15762
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15763
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15764
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15765
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15766
    }/*function_ne*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15767
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15768
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15769
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15770
 *LEN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15771
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15772
    case function_len :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15773
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15774
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15775
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15776
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15777
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15778
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15779
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15780
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15781
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15782
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15783
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15784
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15785
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15786
                function_name = (symbol_c*)(new pragma_c("__len"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15787
                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15788
                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15789
                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15790
                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
 15791
                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
 15792
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15793
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15794
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15795
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15796
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15797
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15798
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15799
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15800
    }/*function_len*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15801
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15802
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15803
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15804
 *LEFT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15805
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15806
    case function_left :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15807
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15808
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15809
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15810
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15811
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15812
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15813
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15814
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15815
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15816
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15817
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15818
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15819
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15820
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15821
                    identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15822
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15823
                    symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15824
                    symbol_c *L_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15825
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15826
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15827
                    if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15828
                      L_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15829
                    if (L_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15830
                      L_type_symbol = search_expression_type->get_type(L_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15831
                      last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15832
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15833
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15834
                    if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15835
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15836
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15837
                        function_name = (symbol_c*)(new pragma_c("__left"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15838
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15839
                        if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15840
                          IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15841
                        ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15842
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15843
                        if (L_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15844
                          L_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15845
                        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
 15846
                        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
 15847
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15848
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15849
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15850
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15851
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15852
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15853
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15854
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15855
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15856
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15857
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15858
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15859
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15860
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15861
    }/*function_left*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15862
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15863
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15864
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15865
 *RIGHT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15866
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15867
    case function_right :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15868
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15869
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15870
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15871
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15872
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15873
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15874
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15875
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15876
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15877
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15878
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15879
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15880
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15881
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15882
                    identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15883
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15884
                    symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15885
                    symbol_c *L_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15886
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15887
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15888
                    if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15889
                      L_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15890
                    if (L_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15891
                      L_type_symbol = search_expression_type->get_type(L_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15892
                      last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15893
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15894
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15895
                    if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15896
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15897
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15898
                        function_name = (symbol_c*)(new pragma_c("__right"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15899
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15900
                        if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15901
                          IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15902
                        ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15903
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15904
                        if (L_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15905
                          L_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15906
                        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
 15907
                        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
 15908
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15909
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15910
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15911
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15912
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15913
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15914
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15915
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15916
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15917
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15918
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15919
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15920
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15921
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15922
    }/*function_right*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15923
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15924
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15925
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15926
 *MID
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15927
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15928
    case function_mid :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15929
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15930
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15931
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15932
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15933
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15934
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15935
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15936
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15937
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15938
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15939
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15940
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15941
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15942
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15943
                    identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15944
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15945
                    symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15946
                    symbol_c *L_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15947
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15948
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15949
                    if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15950
                      L_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15951
                    if (L_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15952
                      L_type_symbol = search_expression_type->get_type(L_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15953
                      last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15954
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15955
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15956
                    if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15957
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15958
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15959
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15960
                            identifier_c param_name("P");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15961
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15962
                            symbol_c *P_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15963
                            symbol_c *P_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15964
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15965
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15966
                            if (P_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15967
                              P_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15968
                            if (P_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15969
                              P_type_symbol = search_expression_type->get_type(P_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15970
                              last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15971
                            }
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15972
                            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15973
                            if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15974
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15975
                        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15976
                                function_name = (symbol_c*)(new pragma_c("__mid"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15977
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15978
                                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15979
                                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15980
                                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15981
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15982
                                if (L_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15983
                                  L_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15984
                                ADD_PARAM_LIST(L_param_value, L_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15985
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15986
                                if (P_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 15987
                                  P_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15988
                                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
 15989
                                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
 15990
                                break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15991
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15992
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15993
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15994
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15995
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15996
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15997
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15998
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15999
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16000
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16001
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16002
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16003
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16004
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16005
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16006
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16007
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16008
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16009
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16010
    }/*function_mid*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16011
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16012
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16013
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16014
 *CONCAT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16015
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16016
    case function_concat :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16017
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16018
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16019
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16020
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16021
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16022
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16023
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16024
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16025
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16026
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16027
            if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16028
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16029
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16030
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16031
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16032
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16033
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16034
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16035
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16036
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16037
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16038
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16039
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16040
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16041
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16042
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16043
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16044
                    if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16045
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16046
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16047
                        function_name = (symbol_c*)(new pragma_c("__time_add"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16048
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16049
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16050
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16051
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16052
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16053
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16054
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16055
                        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
 16056
                        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
 16057
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16058
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16059
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16060
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16061
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16062
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16063
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16064
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16065
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16066
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16067
            if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16068
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16069
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16070
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16071
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16072
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16073
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16074
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16075
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16076
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16077
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16078
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16079
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16080
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16081
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16082
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16083
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16084
                    if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16085
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16086
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16087
                        function_name = (symbol_c*)(new pragma_c("__concat"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16088
                        
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16089
                        if (nb_param < 2)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16090
                          nb_param = 2;
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 16091
                        char* nb_param_str = new char[10];
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16092
                        sprintf(nb_param_str, "%d", nb_param);
154
9114afe1f64b Bug with standard functions nb_params count on Windows fixed
lbessard
parents: 153
diff changeset
 16093
                        ADD_PARAM_LIST((symbol_c*)(new integer_c((const char *)nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16094
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16095
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16096
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16097
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16098
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16099
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16100
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16101
                        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
 16102
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16103
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16104
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16105
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16106
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16107
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16108
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16109
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16110
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16111
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16112
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16113
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16114
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16115
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16116
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16117
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16118
                                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
 16119
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16120
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16121
                                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
 16122
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16123
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16124
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16125
                        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
 16126
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16127
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16128
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16129
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16130
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16131
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16132
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16133
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16134
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16135
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16136
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16137
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16138
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16139
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16140
    }/*function_concat*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16141
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16142
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16143
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16144
 *INSERT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16145
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16146
    case function_insert :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16147
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16148
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16149
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16150
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16151
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16152
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16153
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16154
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16155
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16156
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16157
            if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16158
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16159
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16160
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16161
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16162
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16163
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16164
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16165
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16166
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16167
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16168
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16169
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16170
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16171
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16172
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16173
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16174
                    if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16175
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16176
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16177
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16178
                            identifier_c param_name("P");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16179
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16180
                            symbol_c *P_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16181
                            symbol_c *P_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16182
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16183
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16184
                            if (P_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16185
                              P_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16186
                            if (P_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16187
                              P_type_symbol = search_expression_type->get_type(P_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16188
                              last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16189
                            }
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16190
                            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16191
                            if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16192
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16193
                        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16194
                                function_name = (symbol_c*)(new pragma_c("__insert"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16195
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16196
                                if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16197
                                  IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16198
                                ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16199
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16200
                                if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16201
                                  IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16202
                                ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16203
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16204
                                if (P_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16205
                                  P_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16206
                                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
 16207
                                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
 16208
                                break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16209
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16210
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16211
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16212
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16213
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16214
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16215
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16216
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16217
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16218
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16219
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16220
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16221
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16222
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16223
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16224
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16225
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16226
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16227
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16228
    }/*function_insert*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16229
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16230
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16231
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16232
 *DELETE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16233
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16234
    case function_delete :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16235
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16236
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16237
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16238
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16239
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16240
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16241
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16242
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16243
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16244
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16245
            if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16246
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16247
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16248
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16249
                    identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16250
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16251
                    symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16252
                    symbol_c *L_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16253
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16254
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16255
                    if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16256
                      L_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16257
                    if (L_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16258
                      L_type_symbol = search_expression_type->get_type(L_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16259
                      last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16260
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16261
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16262
                    if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16263
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16264
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16265
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16266
                            identifier_c param_name("P");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16267
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16268
                            symbol_c *P_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16269
                            symbol_c *P_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16270
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16271
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16272
                            if (P_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16273
                              P_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16274
                            if (P_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16275
                              P_type_symbol = search_expression_type->get_type(P_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16276
                              last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16277
                            }
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16278
                            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16279
                            if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16280
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16281
                        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16282
                                function_name = (symbol_c*)(new pragma_c("__delete"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16283
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16284
                                if (IN_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16285
                                  IN_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16286
                                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16287
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16288
                                if (L_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16289
                                  L_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16290
                                ADD_PARAM_LIST(L_param_value, L_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16291
                                
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16292
                                if (P_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16293
                                  P_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16294
                                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
 16295
                                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
 16296
                                break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16297
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16298
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16299
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16300
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16301
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16302
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16303
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16304
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16305
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16306
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16307
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16308
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16309
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16310
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16311
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16312
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16313
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16314
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16315
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16316
    }/*function_delete*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16317
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16318
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16319
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16320
 *REPLACE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16321
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16322
    case function_replace :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16323
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16324
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16325
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16326
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16327
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16328
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16329
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16330
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16331
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16332
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16333
            if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16334
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16335
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16336
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16337
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16338
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16339
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16340
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16341
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16342
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16343
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16344
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16345
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16346
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16347
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16348
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16349
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16350
                    if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16351
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16352
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16353
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16354
                            identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16355
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16356
                            symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16357
                            symbol_c *L_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16358
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16359
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16360
                            if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16361
                              L_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16362
                            if (L_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16363
                              L_type_symbol = search_expression_type->get_type(L_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16364
                              last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16365
                            }
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16366
                            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16367
                            if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16368
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16369
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16370
                                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16371
                                    identifier_c param_name("P");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16372
                                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16373
                                    symbol_c *P_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16374
                                    symbol_c *P_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16375
                                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16376
                                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16377
                                    if (P_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16378
                                      P_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16379
                                    if (P_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16380
                                      P_type_symbol = search_expression_type->get_type(P_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16381
                                      last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16382
                                    }
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16383
                                    
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16384
                                    if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16385
                                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16386
                                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16387
                                        function_name = (symbol_c*)(new pragma_c("__replace"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16388
                                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16389
                                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16390
                                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16391
                                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16392
                                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16393
                                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16394
                                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16395
                                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16396
                                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16397
                                        if (L_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16398
                                          L_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16399
                                        ADD_PARAM_LIST(L_param_value, L_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16400
                                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16401
                                        if (P_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16402
                                          P_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16403
                                        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
 16404
                                        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
 16405
                                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16406
                                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16407
                                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16408
                                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16409
                                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16410
                                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16411
                                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16412
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16413
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16414
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16415
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16416
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16417
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16418
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16419
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16420
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16421
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16422
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16423
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16424
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16425
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16426
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16427
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16428
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16429
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16430
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16431
    }/*function_replace*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16432
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16433
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16434
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16435
 *FIND
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16436
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16437
    case function_find :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16438
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16439
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16440
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16441
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16442
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16443
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16444
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16445
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16446
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16447
            
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16448
            if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16449
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16450
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16451
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16452
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16453
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16454
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16455
                    symbol_c *IN2_type_symbol = NULL;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16456
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16457
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16458
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16459
                      IN2_param_value = function_call_param_iterator.next();
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16460
                    if (IN2_param_value != NULL) {
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16461
                      IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16462
                      last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16463
                    }
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16464
                    
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16465
                    if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16466
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16467
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16468
                        function_name = (symbol_c*)(new pragma_c("__find"));
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16469
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16470
                        if (IN1_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16471
                          IN1_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16472
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
169
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16473
                        
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16474
                        if (IN2_type_symbol == NULL)
bea932bc60b0 Bug when function with unconnected input fixed
lbessard
parents: 165
diff changeset
 16475
                          IN2_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16476
                        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
 16477
                        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
 16478
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16479
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16480
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16481
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16482
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16483
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16484
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16485
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16486
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16487
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16488
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16489
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16490
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16491
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16492
    }/*function_find*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16493
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16494
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16495
    case function_none :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16496
    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 16497
}