--- a/stage4/generate_c/il_code_gen.c Mon Jun 06 14:05:28 2011 +0100
+++ b/stage4/generate_c/il_code_gen.c Mon Jun 06 16:28:41 2011 +0200
@@ -44,14 +44,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_sint"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -81,14 +80,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_sint"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -118,14 +116,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_sint"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -191,14 +188,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_bit"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -300,14 +296,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_uint"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -337,14 +332,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_bit"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -410,14 +404,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_bit"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -447,14 +440,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_uint"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -521,14 +513,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_bit"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -558,14 +549,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_uint"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -595,14 +585,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_uint"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -632,14 +621,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_bit"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -705,14 +693,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_sint"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -8667,14 +8654,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_sint"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -8704,14 +8690,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_sint"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -8741,14 +8726,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_sint"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -8814,14 +8798,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_bit"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -8923,14 +8906,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_uint"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -8960,14 +8942,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_bit"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -9033,14 +9014,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_bit"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -9070,14 +9050,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_uint"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -9107,14 +9086,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_bit"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -9144,14 +9122,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_uint"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -9181,14 +9158,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_uint"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -9218,14 +9194,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_bit"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -9291,14 +9266,13 @@
if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__move_"));
+ function_name = (symbol_c*)(new pragma_c("__real_to_sint"));
if (IN_type_symbol == NULL)
IN_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
function_type_prefix = return_type_symbol;
- function_type_suffix = IN_type_symbol;
break;
}
@@ -14368,192 +14342,6 @@
break;
/****
- *ADD_TIME
- */
- case function_add_time :
- {
- symbol_c *last_type_symbol = NULL;
-
- {
- symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
- /* Get the value from a foo(<param_name> = <param_value>) style call */
- symbol_c *IN1_param_value = &this->default_variable_name;
-
- symbol_c *IN1_type_symbol = param_data_type;
- last_type_symbol = param_data_type;
-
- if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
- {
-
- {
- symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
- /* Get the value from a foo(<param_name> = <param_value>) style call */
- symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
- symbol_c *IN2_type_symbol = NULL;
-
- /* Get the value from a foo(<param_value>) style call */
- if (IN2_param_value == NULL)
- IN2_param_value = function_call_param_iterator.next_nf();
- if (IN2_param_value != NULL) {
- IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
- 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 ;
- }
-
- if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
- {
-
- function_name = (symbol_c*)(new pragma_c("__time_add"));
-
- if (IN1_type_symbol == NULL)
- IN1_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
-
- if (IN2_type_symbol == NULL)
- IN2_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
- symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
- break;
-
- }
-
-
- ERROR;
- }
-
- }
-
-
- ERROR;
- }
-
- }/*function_add_time*/
- break;
-
-/****
- *ADD_TOD_TIME
- */
- case function_add_tod_time :
- {
- symbol_c *last_type_symbol = NULL;
-
- {
- symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
- /* Get the value from a foo(<param_name> = <param_value>) style call */
- symbol_c *IN1_param_value = &this->default_variable_name;
-
- symbol_c *IN1_type_symbol = param_data_type;
- last_type_symbol = param_data_type;
-
- if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
- {
-
- {
- symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
- /* Get the value from a foo(<param_name> = <param_value>) style call */
- symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
- symbol_c *IN2_type_symbol = NULL;
-
- /* Get the value from a foo(<param_value>) style call */
- if (IN2_param_value == NULL)
- IN2_param_value = function_call_param_iterator.next_nf();
- if (IN2_param_value != NULL) {
- IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
- 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 ;
- }
-
- if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
- {
-
- function_name = (symbol_c*)(new pragma_c("__time_add"));
-
- if (IN1_type_symbol == NULL)
- IN1_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
-
- if (IN2_type_symbol == NULL)
- IN2_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
- symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
- break;
-
- }
-
-
- ERROR;
- }
-
- }
-
-
- ERROR;
- }
-
- }/*function_add_tod_time*/
- break;
-
-/****
- *ADD_DT_TIME
- */
- case function_add_dt_time :
- {
- symbol_c *last_type_symbol = NULL;
-
- {
- symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
- /* Get the value from a foo(<param_name> = <param_value>) style call */
- symbol_c *IN1_param_value = &this->default_variable_name;
-
- symbol_c *IN1_type_symbol = param_data_type;
- last_type_symbol = param_data_type;
-
- if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
- {
-
- {
- symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
- /* Get the value from a foo(<param_name> = <param_value>) style call */
- symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
- symbol_c *IN2_type_symbol = NULL;
-
- /* Get the value from a foo(<param_value>) style call */
- if (IN2_param_value == NULL)
- IN2_param_value = function_call_param_iterator.next_nf();
- if (IN2_param_value != NULL) {
- IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
- 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 ;
- }
-
- if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
- {
-
- function_name = (symbol_c*)(new pragma_c("__time_add"));
-
- if (IN1_type_symbol == NULL)
- IN1_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
-
- if (IN2_type_symbol == NULL)
- IN2_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
- symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
- break;
-
- }
-
-
- ERROR;
- }
-
- }
-
-
- ERROR;
- }
-
- }/*function_add_dt_time*/
- break;
-
-/****
*MUL
*/
case function_mul :
@@ -14690,9 +14478,9 @@
break;
/****
- *MULTIME
- */
- case function_multime :
+ *SUB
+ */
+ case function_sub :
{
symbol_c *last_type_symbol = NULL;
@@ -14704,7 +14492,7 @@
symbol_c *IN1_type_symbol = param_data_type;
last_type_symbol = param_data_type;
- if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+ if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
{
{
@@ -14724,7 +14512,305 @@
if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__time_mul"));
+ function_name = (symbol_c*)(new pragma_c("__sub_"));
+
+ if (IN1_type_symbol == NULL)
+ IN1_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
+
+ if (IN2_type_symbol == NULL)
+ IN2_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
+ symbol_c * return_type_symbol = last_type_symbol;
+ function_type_suffix = return_type_symbol;
+ break;
+
+ }
+
+
+ ERROR;
+ }
+
+ }
+
+ if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+ {
+
+ {
+ symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
+ /* Get the value from a foo(<param_name> = <param_value>) style call */
+ symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
+ symbol_c *IN2_type_symbol = NULL;
+
+ /* Get the value from a foo(<param_value>) style call */
+ if (IN2_param_value == NULL)
+ IN2_param_value = function_call_param_iterator.next_nf();
+ if (IN2_param_value != NULL) {
+ IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
+ 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 ;
+ }
+
+ if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+ {
+
+ function_name = (symbol_c*)(new pragma_c("__time_sub"));
+
+ if (IN1_type_symbol == NULL)
+ IN1_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
+
+ if (IN2_type_symbol == NULL)
+ IN2_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
+ symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
+ break;
+
+ }
+
+
+ ERROR;
+ }
+
+ }
+
+ if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+ {
+
+ {
+ symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
+ /* Get the value from a foo(<param_name> = <param_value>) style call */
+ symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
+ symbol_c *IN2_type_symbol = NULL;
+
+ /* Get the value from a foo(<param_value>) style call */
+ if (IN2_param_value == NULL)
+ IN2_param_value = function_call_param_iterator.next_nf();
+ if (IN2_param_value != NULL) {
+ IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
+ 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 ;
+ }
+
+ if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+ {
+
+ function_name = (symbol_c*)(new pragma_c("__time_sub"));
+
+ if (IN1_type_symbol == NULL)
+ IN1_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
+
+ if (IN2_type_symbol == NULL)
+ IN2_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
+ symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
+ break;
+
+ }
+
+ if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+ {
+
+ function_name = (symbol_c*)(new pragma_c("__time_sub"));
+
+ if (IN1_type_symbol == NULL)
+ IN1_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
+
+ if (IN2_type_symbol == NULL)
+ IN2_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
+ symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
+ break;
+
+ }
+
+
+ ERROR;
+ }
+
+ }
+
+ if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+ {
+
+ {
+ symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
+ /* Get the value from a foo(<param_name> = <param_value>) style call */
+ symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
+ symbol_c *IN2_type_symbol = NULL;
+
+ /* Get the value from a foo(<param_value>) style call */
+ if (IN2_param_value == NULL)
+ IN2_param_value = function_call_param_iterator.next_nf();
+ if (IN2_param_value != NULL) {
+ IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
+ 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 ;
+ }
+
+ if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+ {
+
+ function_name = (symbol_c*)(new pragma_c("__time_sub"));
+
+ if (IN1_type_symbol == NULL)
+ IN1_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
+
+ if (IN2_type_symbol == NULL)
+ IN2_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
+ symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
+ break;
+
+ }
+
+ if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+ {
+
+ function_name = (symbol_c*)(new pragma_c("__time_sub"));
+
+ if (IN1_type_symbol == NULL)
+ IN1_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
+
+ if (IN2_type_symbol == NULL)
+ IN2_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
+ symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
+ break;
+
+ }
+
+
+ ERROR;
+ }
+
+ }
+
+ if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+ {
+
+ {
+ symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
+ /* Get the value from a foo(<param_name> = <param_value>) style call */
+ symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
+ symbol_c *IN2_type_symbol = NULL;
+
+ /* Get the value from a foo(<param_value>) style call */
+ if (IN2_param_value == NULL)
+ IN2_param_value = function_call_param_iterator.next_nf();
+ if (IN2_param_value != NULL) {
+ IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
+ 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 ;
+ }
+
+ if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+ {
+
+ function_name = (symbol_c*)(new pragma_c("__time_sub"));
+
+ if (IN1_type_symbol == NULL)
+ IN1_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
+
+ if (IN2_type_symbol == NULL)
+ IN2_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
+ symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
+ break;
+
+ }
+
+
+ ERROR;
+ }
+
+ }
+
+
+ ERROR;
+ }
+
+ }/*function_sub*/
+ break;
+
+/****
+ *DIV
+ */
+ case function_div :
+ {
+ symbol_c *last_type_symbol = NULL;
+
+ {
+ symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
+ /* Get the value from a foo(<param_name> = <param_value>) style call */
+ symbol_c *IN1_param_value = &this->default_variable_name;
+
+ symbol_c *IN1_type_symbol = param_data_type;
+ last_type_symbol = param_data_type;
+
+ if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
+ {
+
+ {
+ symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
+ /* Get the value from a foo(<param_name> = <param_value>) style call */
+ symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
+ symbol_c *IN2_type_symbol = NULL;
+
+ /* Get the value from a foo(<param_value>) style call */
+ if (IN2_param_value == NULL)
+ IN2_param_value = function_call_param_iterator.next_nf();
+ if (IN2_param_value != NULL) {
+ IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
+ 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 ;
+ }
+
+ if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
+ {
+
+ function_name = (symbol_c*)(new pragma_c("__div_"));
+
+ if (IN1_type_symbol == NULL)
+ IN1_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
+
+ if (IN2_type_symbol == NULL)
+ IN2_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
+ symbol_c * return_type_symbol = last_type_symbol;
+ function_type_suffix = return_type_symbol;
+ break;
+
+ }
+
+
+ ERROR;
+ }
+
+ }
+
+ if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+ {
+
+ {
+ symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
+ /* Get the value from a foo(<param_name> = <param_value>) style call */
+ symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
+ symbol_c *IN2_type_symbol = NULL;
+
+ /* Get the value from a foo(<param_value>) style call */
+ if (IN2_param_value == NULL)
+ IN2_param_value = function_call_param_iterator.next_nf();
+ if (IN2_param_value != NULL) {
+ IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
+ 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 ;
+ }
+
+ if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
+ {
+
+ function_name = (symbol_c*)(new pragma_c("__time_div"));
if (IN1_type_symbol == NULL)
IN1_type_symbol = last_type_symbol;
@@ -14750,13 +14836,13 @@
ERROR;
}
- }/*function_multime*/
- break;
-
-/****
- *SUB
- */
- case function_sub :
+ }/*function_div*/
+ break;
+
+/****
+ *MOD
+ */
+ case function_mod :
{
symbol_c *last_type_symbol = NULL;
@@ -14788,7 +14874,7 @@
if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__sub_"));
+ function_name = (symbol_c*)(new pragma_c("__mod_"));
if (IN1_type_symbol == NULL)
IN1_type_symbol = last_type_symbol;
@@ -14809,7 +14895,29 @@
}
- if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+
+ ERROR;
+ }
+
+ }/*function_mod*/
+ break;
+
+/****
+ *EXPT
+ */
+ case function_expt :
+ {
+ symbol_c *last_type_symbol = NULL;
+
+ {
+ symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
+ /* Get the value from a foo(<param_name> = <param_value>) style call */
+ symbol_c *IN1_param_value = &this->default_variable_name;
+
+ symbol_c *IN1_type_symbol = param_data_type;
+ last_type_symbol = param_data_type;
+
+ if(IN1_type_symbol == NULL || search_expression_type->is_real_type(IN1_type_symbol))
{
{
@@ -14826,10 +14934,10 @@
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 ;
}
- if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+ if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__time_sub"));
+ function_name = (symbol_c*)(new pragma_c("__expt_"));
if (IN1_type_symbol == NULL)
IN1_type_symbol = last_type_symbol;
@@ -14838,7 +14946,8 @@
if (IN2_type_symbol == NULL)
IN2_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
- symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
+ symbol_c * return_type_symbol = last_type_symbol;
+ function_type_suffix = IN1_type_symbol;
break;
}
@@ -14849,7 +14958,69 @@
}
- if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+
+ ERROR;
+ }
+
+ }/*function_expt*/
+ break;
+
+/****
+ *MOVE
+ */
+ case function_move :
+ {
+ symbol_c *last_type_symbol = NULL;
+
+ {
+ symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
+ /* Get the value from a foo(<param_name> = <param_value>) style call */
+ symbol_c *IN_param_value = &this->default_variable_name;
+
+ symbol_c *IN_type_symbol = param_data_type;
+ last_type_symbol = param_data_type;
+
+
+ {
+
+ function_name = (symbol_c*)(new pragma_c("__move_"));
+
+ if (IN_type_symbol == NULL)
+ IN_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
+ symbol_c * return_type_symbol = last_type_symbol;
+ function_type_suffix = return_type_symbol;
+ if (search_expression_type->is_literal_integer_type(function_type_suffix))
+ function_type_suffix = &search_constant_type_c::lint_type_name;
+ else if (search_expression_type->is_literal_real_type(function_type_suffix))
+ function_type_suffix = &search_constant_type_c::lreal_type_name;
+ break;
+
+ }
+
+
+ ERROR;
+ }
+
+ }/*function_move*/
+ break;
+
+/****
+ *ADD_TIME
+ */
+ case function_add_time :
+ {
+ symbol_c *last_type_symbol = NULL;
+
+ {
+ symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
+ /* Get the value from a foo(<param_name> = <param_value>) style call */
+ symbol_c *IN1_param_value = &this->default_variable_name;
+
+ symbol_c *IN1_type_symbol = param_data_type;
+ last_type_symbol = param_data_type;
+
+ if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
{
{
@@ -14866,10 +15037,10 @@
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 ;
}
- if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+ if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__time_sub"));
+ function_name = (symbol_c*)(new pragma_c("__time_add"));
if (IN1_type_symbol == NULL)
IN1_type_symbol = last_type_symbol;
@@ -14883,29 +15054,34 @@
}
- if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
- {
-
- function_name = (symbol_c*)(new pragma_c("__time_sub"));
-
- if (IN1_type_symbol == NULL)
- IN1_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
-
- if (IN2_type_symbol == NULL)
- IN2_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
- symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
- break;
-
- }
-
ERROR;
}
}
+
+ ERROR;
+ }
+
+ }/*function_add_time*/
+ break;
+
+/****
+ *ADD_TOD_TIME
+ */
+ case function_add_tod_time :
+ {
+ symbol_c *last_type_symbol = NULL;
+
+ {
+ symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
+ /* Get the value from a foo(<param_name> = <param_value>) style call */
+ symbol_c *IN1_param_value = &this->default_variable_name;
+
+ symbol_c *IN1_type_symbol = param_data_type;
+ last_type_symbol = param_data_type;
+
if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
{
@@ -14923,27 +15099,10 @@
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 ;
}
- if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
- {
-
- function_name = (symbol_c*)(new pragma_c("__time_sub"));
-
- if (IN1_type_symbol == NULL)
- IN1_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
-
- if (IN2_type_symbol == NULL)
- IN2_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
- symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
- break;
-
- }
-
if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__time_sub"));
+ function_name = (symbol_c*)(new pragma_c("__time_add"));
if (IN1_type_symbol == NULL)
IN1_type_symbol = last_type_symbol;
@@ -14963,7 +15122,29 @@
}
- if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+
+ ERROR;
+ }
+
+ }/*function_add_tod_time*/
+ break;
+
+/****
+ *ADD_DT_TIME
+ */
+ case function_add_dt_time :
+ {
+ symbol_c *last_type_symbol = NULL;
+
+ {
+ symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
+ /* Get the value from a foo(<param_name> = <param_value>) style call */
+ symbol_c *IN1_param_value = &this->default_variable_name;
+
+ symbol_c *IN1_type_symbol = param_data_type;
+ last_type_symbol = param_data_type;
+
+ if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
{
{
@@ -14983,7 +15164,7 @@
if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__time_sub"));
+ function_name = (symbol_c*)(new pragma_c("__time_add"));
if (IN1_type_symbol == NULL)
IN1_type_symbol = last_type_symbol;
@@ -14992,7 +15173,7 @@
if (IN2_type_symbol == NULL)
IN2_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
- symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
+ symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
break;
}
@@ -15007,13 +15188,13 @@
ERROR;
}
- }/*function_sub*/
- break;
-
-/****
- *SUB_TIME
- */
- case function_sub_time :
+ }/*function_add_dt_time*/
+ break;
+
+/****
+ *MULTIME
+ */
+ case function_multime :
{
symbol_c *last_type_symbol = NULL;
@@ -15042,10 +15223,10 @@
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 ;
}
- if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+ if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__time_sub"));
+ function_name = (symbol_c*)(new pragma_c("__time_mul"));
if (IN1_type_symbol == NULL)
IN1_type_symbol = last_type_symbol;
@@ -15055,6 +15236,8 @@
IN2_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
+ if (search_expression_type->is_literal_integer_type(function_type_suffix))
+ function_type_suffix = &search_constant_type_c::lint_type_name;
break;
}
@@ -15069,13 +15252,13 @@
ERROR;
}
- }/*function_sub_time*/
- break;
-
-/****
- *SUB_DATE_DATE
- */
- case function_sub_date_date :
+ }/*function_multime*/
+ break;
+
+/****
+ *SUB_TIME
+ */
+ case function_sub_time :
{
symbol_c *last_type_symbol = NULL;
@@ -15087,7 +15270,7 @@
symbol_c *IN1_type_symbol = param_data_type;
last_type_symbol = param_data_type;
- if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+ if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
{
{
@@ -15104,7 +15287,7 @@
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 ;
}
- if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
+ if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
{
function_name = (symbol_c*)(new pragma_c("__time_sub"));
@@ -15131,13 +15314,13 @@
ERROR;
}
- }/*function_sub_date_date*/
- break;
-
-/****
- *SUB_TOD_TIME
- */
- case function_sub_tod_time :
+ }/*function_sub_time*/
+ break;
+
+/****
+ *SUB_DATE_DATE
+ */
+ case function_sub_date_date :
{
symbol_c *last_type_symbol = NULL;
@@ -15149,7 +15332,7 @@
symbol_c *IN1_type_symbol = param_data_type;
last_type_symbol = param_data_type;
- if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+ if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
{
{
@@ -15166,7 +15349,7 @@
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 ;
}
- if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+ if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
{
function_name = (symbol_c*)(new pragma_c("__time_sub"));
@@ -15178,7 +15361,7 @@
if (IN2_type_symbol == NULL)
IN2_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
- symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
+ symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
break;
}
@@ -15193,13 +15376,13 @@
ERROR;
}
- }/*function_sub_tod_time*/
- break;
-
-/****
- *SUB_TOD_TOD
- */
- case function_sub_tod_tod :
+ }/*function_sub_date_date*/
+ break;
+
+/****
+ *SUB_TOD_TIME
+ */
+ case function_sub_tod_time :
{
symbol_c *last_type_symbol = NULL;
@@ -15228,7 +15411,7 @@
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 ;
}
- if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
+ if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
{
function_name = (symbol_c*)(new pragma_c("__time_sub"));
@@ -15240,7 +15423,7 @@
if (IN2_type_symbol == NULL)
IN2_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
- symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
+ symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
break;
}
@@ -15255,13 +15438,13 @@
ERROR;
}
- }/*function_sub_tod_tod*/
- break;
-
-/****
- *SUB_DT_TIME
- */
- case function_sub_dt_time :
+ }/*function_sub_tod_time*/
+ break;
+
+/****
+ *SUB_TOD_TOD
+ */
+ case function_sub_tod_tod :
{
symbol_c *last_type_symbol = NULL;
@@ -15273,7 +15456,7 @@
symbol_c *IN1_type_symbol = param_data_type;
last_type_symbol = param_data_type;
- if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+ if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
{
{
@@ -15290,7 +15473,7 @@
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 ;
}
- if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
+ if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
{
function_name = (symbol_c*)(new pragma_c("__time_sub"));
@@ -15307,23 +15490,6 @@
}
- if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
- {
-
- function_name = (symbol_c*)(new pragma_c("__time_sub"));
-
- if (IN1_type_symbol == NULL)
- IN1_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
-
- if (IN2_type_symbol == NULL)
- IN2_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
- symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
- break;
-
- }
-
ERROR;
}
@@ -15334,13 +15500,13 @@
ERROR;
}
- }/*function_sub_dt_time*/
- break;
-
-/****
- *DIV
- */
- case function_div :
+ }/*function_sub_tod_tod*/
+ break;
+
+/****
+ *SUB_DT_TIME
+ */
+ case function_sub_dt_time :
{
symbol_c *last_type_symbol = NULL;
@@ -15352,7 +15518,7 @@
symbol_c *IN1_type_symbol = param_data_type;
last_type_symbol = param_data_type;
- if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
+ if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
{
{
@@ -15369,10 +15535,10 @@
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 ;
}
- if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
+ if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
{
- function_name = (symbol_c*)(new pragma_c("__div_"));
+ function_name = (symbol_c*)(new pragma_c("__time_sub"));
if (IN1_type_symbol == NULL)
IN1_type_symbol = last_type_symbol;
@@ -15381,8 +15547,24 @@
if (IN2_type_symbol == NULL)
IN2_type_symbol = last_type_symbol;
ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
- symbol_c * return_type_symbol = last_type_symbol;
- function_type_suffix = return_type_symbol;
+ symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
+ break;
+
+ }
+
+ if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
+ {
+
+ function_name = (symbol_c*)(new pragma_c("__time_sub"));
+
+ if (IN1_type_symbol == NULL)
+ IN1_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
+
+ if (IN2_type_symbol == NULL)
+ IN2_type_symbol = last_type_symbol;
+ ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
+ symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
break;
}
@@ -15393,6 +15575,28 @@
}
+
+ ERROR;
+ }
+
+ }/*function_sub_dt_time*/
+ break;
+
+/****
+ *DIVTIME
+ */
+ case function_divtime :
+ {
+ symbol_c *last_type_symbol = NULL;
+
+ {
+ symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
+ /* Get the value from a foo(<param_name> = <param_value>) style call */
+ symbol_c *IN1_param_value = &this->default_variable_name;
+
+ symbol_c *IN1_type_symbol = param_data_type;
+ last_type_symbol = param_data_type;
+
if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
{
@@ -15439,240 +15643,10 @@
ERROR;
}
- }/*function_div*/
- break;
-
-/****
- *DIVTIME
- */
- case function_divtime :
- {
- symbol_c *last_type_symbol = NULL;
-
- {
- symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
- /* Get the value from a foo(<param_name> = <param_value>) style call */
- symbol_c *IN1_param_value = &this->default_variable_name;
-
- symbol_c *IN1_type_symbol = param_data_type;
- last_type_symbol = param_data_type;
-
- if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
- {
-
- {
- symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
- /* Get the value from a foo(<param_name> = <param_value>) style call */
- symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
- symbol_c *IN2_type_symbol = NULL;
-
- /* Get the value from a foo(<param_value>) style call */
- if (IN2_param_value == NULL)
- IN2_param_value = function_call_param_iterator.next_nf();
- if (IN2_param_value != NULL) {
- IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
- 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 ;
- }
-
- if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
- {
-
- function_name = (symbol_c*)(new pragma_c("__time_div"));
-
- if (IN1_type_symbol == NULL)
- IN1_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
-
- if (IN2_type_symbol == NULL)
- IN2_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
- symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
- if (search_expression_type->is_literal_integer_type(function_type_suffix))
- function_type_suffix = &search_constant_type_c::lint_type_name;
- break;
-
- }
-
-
- ERROR;
- }
-
- }
-
-
- ERROR;
- }
-
}/*function_divtime*/
break;
/****
- *MOD
- */
- case function_mod :
- {
- symbol_c *last_type_symbol = NULL;
-
- {
- symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
- /* Get the value from a foo(<param_name> = <param_value>) style call */
- symbol_c *IN1_param_value = &this->default_variable_name;
-
- symbol_c *IN1_type_symbol = param_data_type;
- last_type_symbol = param_data_type;
-
- if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
- {
-
- {
- symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
- /* Get the value from a foo(<param_name> = <param_value>) style call */
- symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
- symbol_c *IN2_type_symbol = NULL;
-
- /* Get the value from a foo(<param_value>) style call */
- if (IN2_param_value == NULL)
- IN2_param_value = function_call_param_iterator.next_nf();
- if (IN2_param_value != NULL) {
- IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
- 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 ;
- }
-
- if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
- {
-
- function_name = (symbol_c*)(new pragma_c("__mod_"));
-
- if (IN1_type_symbol == NULL)
- IN1_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
-
- if (IN2_type_symbol == NULL)
- IN2_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
- symbol_c * return_type_symbol = last_type_symbol;
- function_type_suffix = return_type_symbol;
- break;
-
- }
-
-
- ERROR;
- }
-
- }
-
-
- ERROR;
- }
-
- }/*function_mod*/
- break;
-
-/****
- *EXPT
- */
- case function_expt :
- {
- symbol_c *last_type_symbol = NULL;
-
- {
- symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
- /* Get the value from a foo(<param_name> = <param_value>) style call */
- symbol_c *IN1_param_value = &this->default_variable_name;
-
- symbol_c *IN1_type_symbol = param_data_type;
- last_type_symbol = param_data_type;
-
- if(IN1_type_symbol == NULL || search_expression_type->is_real_type(IN1_type_symbol))
- {
-
- {
- symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
- /* Get the value from a foo(<param_name> = <param_value>) style call */
- symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
- symbol_c *IN2_type_symbol = NULL;
-
- /* Get the value from a foo(<param_value>) style call */
- if (IN2_param_value == NULL)
- IN2_param_value = function_call_param_iterator.next_nf();
- if (IN2_param_value != NULL) {
- IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
- 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 ;
- }
-
- if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
- {
-
- function_name = (symbol_c*)(new pragma_c("__expt_"));
-
- if (IN1_type_symbol == NULL)
- IN1_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN1_param_name, IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
-
- if (IN2_type_symbol == NULL)
- IN2_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN2_param_name, IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
- symbol_c * return_type_symbol = last_type_symbol;
- function_type_suffix = IN1_type_symbol;
- break;
-
- }
-
-
- ERROR;
- }
-
- }
-
-
- ERROR;
- }
-
- }/*function_expt*/
- break;
-
-/****
- *MOVE
- */
- case function_move :
- {
- symbol_c *last_type_symbol = NULL;
-
- {
- symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
- /* Get the value from a foo(<param_name> = <param_value>) style call */
- symbol_c *IN_param_value = &this->default_variable_name;
-
- symbol_c *IN_type_symbol = param_data_type;
- last_type_symbol = param_data_type;
-
-
- {
-
- function_name = (symbol_c*)(new pragma_c("__move_"));
-
- if (IN_type_symbol == NULL)
- IN_type_symbol = last_type_symbol;
- ADD_PARAM_LIST(IN_param_name, IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
- symbol_c * return_type_symbol = last_type_symbol;
- function_type_suffix = return_type_symbol;
- if (search_expression_type->is_literal_integer_type(function_type_suffix))
- function_type_suffix = &search_constant_type_c::lint_type_name;
- else if (search_expression_type->is_literal_real_type(function_type_suffix))
- function_type_suffix = &search_constant_type_c::lreal_type_name;
- break;
-
- }
-
-
- ERROR;
- }
-
- }/*function_move*/
- break;
-
-/****
*SHL
*/
case function_shl :