6699 |
6699 |
6700 }/*function_lreal_to_lword*/ |
6700 }/*function_lreal_to_lword*/ |
6701 break; |
6701 break; |
6702 |
6702 |
6703 /**** |
6703 /**** |
6704 *TIME_TO_BOOL |
6704 *TIME_TO_SINT |
6705 */ |
6705 */ |
6706 case function_time_to_bool : |
6706 case function_time_to_sint : |
6707 { |
6707 { |
6708 symbol_c *last_type_symbol = NULL; |
6708 symbol_c *last_type_symbol = NULL; |
6709 |
6709 |
6710 { |
6710 { |
6711 identifier_c param_name("IN"); |
6711 identifier_c param_name("IN"); |
6712 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
6712 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
6713 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
6713 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
6714 |
6714 |
6715 /* Get the value from a foo(<param_value>) style call */ |
6715 /* Get the value from a foo(<param_value>) style call */ |
6716 if (IN_param_value == NULL) |
6716 if (IN_param_value == NULL) |
6717 IN_param_value = function_call_param_iterator.next(); |
6717 IN_param_value = function_call_param_iterator.next(); |
6718 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
6718 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
6719 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
6719 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
6720 |
6720 |
6721 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
6721 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
6722 { |
|
6723 |
|
6724 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
6725 return return_type_symbol; |
|
6726 |
|
6727 } |
|
6728 |
|
6729 ERROR; |
|
6730 } |
|
6731 |
|
6732 }/*function_time_to_sint*/ |
|
6733 break; |
|
6734 |
|
6735 /**** |
|
6736 *TIME_TO_INT |
|
6737 */ |
|
6738 case function_time_to_int : |
|
6739 { |
|
6740 symbol_c *last_type_symbol = NULL; |
|
6741 |
|
6742 { |
|
6743 identifier_c param_name("IN"); |
|
6744 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
6745 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
6746 |
|
6747 /* Get the value from a foo(<param_value>) style call */ |
|
6748 if (IN_param_value == NULL) |
|
6749 IN_param_value = function_call_param_iterator.next(); |
|
6750 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
6751 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
6752 |
|
6753 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
6754 { |
|
6755 |
|
6756 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
6757 return return_type_symbol; |
|
6758 |
|
6759 } |
|
6760 |
|
6761 ERROR; |
|
6762 } |
|
6763 |
|
6764 }/*function_time_to_int*/ |
|
6765 break; |
|
6766 |
|
6767 /**** |
|
6768 *TIME_TO_DINT |
|
6769 */ |
|
6770 case function_time_to_dint : |
|
6771 { |
|
6772 symbol_c *last_type_symbol = NULL; |
|
6773 |
|
6774 { |
|
6775 identifier_c param_name("IN"); |
|
6776 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
6777 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
6778 |
|
6779 /* Get the value from a foo(<param_value>) style call */ |
|
6780 if (IN_param_value == NULL) |
|
6781 IN_param_value = function_call_param_iterator.next(); |
|
6782 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
6783 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
6784 |
|
6785 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
6786 { |
|
6787 |
|
6788 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
6789 return return_type_symbol; |
|
6790 |
|
6791 } |
|
6792 |
|
6793 ERROR; |
|
6794 } |
|
6795 |
|
6796 }/*function_time_to_dint*/ |
|
6797 break; |
|
6798 |
|
6799 /**** |
|
6800 *TIME_TO_LINT |
|
6801 */ |
|
6802 case function_time_to_lint : |
|
6803 { |
|
6804 symbol_c *last_type_symbol = NULL; |
|
6805 |
|
6806 { |
|
6807 identifier_c param_name("IN"); |
|
6808 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
6809 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
6810 |
|
6811 /* Get the value from a foo(<param_value>) style call */ |
|
6812 if (IN_param_value == NULL) |
|
6813 IN_param_value = function_call_param_iterator.next(); |
|
6814 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
6815 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
6816 |
|
6817 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
6818 { |
|
6819 |
|
6820 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
6821 return return_type_symbol; |
|
6822 |
|
6823 } |
|
6824 |
|
6825 ERROR; |
|
6826 } |
|
6827 |
|
6828 }/*function_time_to_lint*/ |
|
6829 break; |
|
6830 |
|
6831 /**** |
|
6832 *TIME_TO_USINT |
|
6833 */ |
|
6834 case function_time_to_usint : |
|
6835 { |
|
6836 symbol_c *last_type_symbol = NULL; |
|
6837 |
|
6838 { |
|
6839 identifier_c param_name("IN"); |
|
6840 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
6841 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
6842 |
|
6843 /* Get the value from a foo(<param_value>) style call */ |
|
6844 if (IN_param_value == NULL) |
|
6845 IN_param_value = function_call_param_iterator.next(); |
|
6846 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
6847 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
6848 |
|
6849 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
6850 { |
|
6851 |
|
6852 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
6853 return return_type_symbol; |
|
6854 |
|
6855 } |
|
6856 |
|
6857 ERROR; |
|
6858 } |
|
6859 |
|
6860 }/*function_time_to_usint*/ |
|
6861 break; |
|
6862 |
|
6863 /**** |
|
6864 *TIME_TO_UINT |
|
6865 */ |
|
6866 case function_time_to_uint : |
|
6867 { |
|
6868 symbol_c *last_type_symbol = NULL; |
|
6869 |
|
6870 { |
|
6871 identifier_c param_name("IN"); |
|
6872 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
6873 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
6874 |
|
6875 /* Get the value from a foo(<param_value>) style call */ |
|
6876 if (IN_param_value == NULL) |
|
6877 IN_param_value = function_call_param_iterator.next(); |
|
6878 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
6879 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
6880 |
|
6881 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
6882 { |
|
6883 |
|
6884 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
6885 return return_type_symbol; |
|
6886 |
|
6887 } |
|
6888 |
|
6889 ERROR; |
|
6890 } |
|
6891 |
|
6892 }/*function_time_to_uint*/ |
|
6893 break; |
|
6894 |
|
6895 /**** |
|
6896 *TIME_TO_UDINT |
|
6897 */ |
|
6898 case function_time_to_udint : |
|
6899 { |
|
6900 symbol_c *last_type_symbol = NULL; |
|
6901 |
|
6902 { |
|
6903 identifier_c param_name("IN"); |
|
6904 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
6905 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
6906 |
|
6907 /* Get the value from a foo(<param_value>) style call */ |
|
6908 if (IN_param_value == NULL) |
|
6909 IN_param_value = function_call_param_iterator.next(); |
|
6910 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
6911 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
6912 |
|
6913 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
6914 { |
|
6915 |
|
6916 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
6917 return return_type_symbol; |
|
6918 |
|
6919 } |
|
6920 |
|
6921 ERROR; |
|
6922 } |
|
6923 |
|
6924 }/*function_time_to_udint*/ |
|
6925 break; |
|
6926 |
|
6927 /**** |
|
6928 *TIME_TO_ULINT |
|
6929 */ |
|
6930 case function_time_to_ulint : |
|
6931 { |
|
6932 symbol_c *last_type_symbol = NULL; |
|
6933 |
|
6934 { |
|
6935 identifier_c param_name("IN"); |
|
6936 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
6937 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
6938 |
|
6939 /* Get the value from a foo(<param_value>) style call */ |
|
6940 if (IN_param_value == NULL) |
|
6941 IN_param_value = function_call_param_iterator.next(); |
|
6942 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
6943 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
6944 |
|
6945 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
6946 { |
|
6947 |
|
6948 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
6949 return return_type_symbol; |
|
6950 |
|
6951 } |
|
6952 |
|
6953 ERROR; |
|
6954 } |
|
6955 |
|
6956 }/*function_time_to_ulint*/ |
|
6957 break; |
|
6958 |
|
6959 /**** |
|
6960 *TIME_TO_REAL |
|
6961 */ |
|
6962 case function_time_to_real : |
|
6963 { |
|
6964 symbol_c *last_type_symbol = NULL; |
|
6965 |
|
6966 { |
|
6967 identifier_c param_name("IN"); |
|
6968 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
6969 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
6970 |
|
6971 /* Get the value from a foo(<param_value>) style call */ |
|
6972 if (IN_param_value == NULL) |
|
6973 IN_param_value = function_call_param_iterator.next(); |
|
6974 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
6975 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
6976 |
|
6977 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
6978 { |
|
6979 |
|
6980 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
6981 return return_type_symbol; |
|
6982 |
|
6983 } |
|
6984 |
|
6985 ERROR; |
|
6986 } |
|
6987 |
|
6988 }/*function_time_to_real*/ |
|
6989 break; |
|
6990 |
|
6991 /**** |
|
6992 *TIME_TO_LREAL |
|
6993 */ |
|
6994 case function_time_to_lreal : |
|
6995 { |
|
6996 symbol_c *last_type_symbol = NULL; |
|
6997 |
|
6998 { |
|
6999 identifier_c param_name("IN"); |
|
7000 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7001 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7002 |
|
7003 /* Get the value from a foo(<param_value>) style call */ |
|
7004 if (IN_param_value == NULL) |
|
7005 IN_param_value = function_call_param_iterator.next(); |
|
7006 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7007 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7008 |
|
7009 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
7010 { |
|
7011 |
|
7012 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
7013 return return_type_symbol; |
|
7014 |
|
7015 } |
|
7016 |
|
7017 ERROR; |
|
7018 } |
|
7019 |
|
7020 }/*function_time_to_lreal*/ |
|
7021 break; |
|
7022 |
|
7023 /**** |
|
7024 *TIME_TO_STRING |
|
7025 */ |
|
7026 case function_time_to_string : |
|
7027 { |
|
7028 symbol_c *last_type_symbol = NULL; |
|
7029 |
|
7030 { |
|
7031 identifier_c param_name("IN"); |
|
7032 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7033 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7034 |
|
7035 /* Get the value from a foo(<param_value>) style call */ |
|
7036 if (IN_param_value == NULL) |
|
7037 IN_param_value = function_call_param_iterator.next(); |
|
7038 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7039 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7040 |
|
7041 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
7042 { |
|
7043 |
|
7044 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
7045 return return_type_symbol; |
|
7046 |
|
7047 } |
|
7048 |
|
7049 ERROR; |
|
7050 } |
|
7051 |
|
7052 }/*function_time_to_string*/ |
|
7053 break; |
|
7054 |
|
7055 /**** |
|
7056 *TIME_TO_BYTE |
|
7057 */ |
|
7058 case function_time_to_byte : |
|
7059 { |
|
7060 symbol_c *last_type_symbol = NULL; |
|
7061 |
|
7062 { |
|
7063 identifier_c param_name("IN"); |
|
7064 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7065 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7066 |
|
7067 /* Get the value from a foo(<param_value>) style call */ |
|
7068 if (IN_param_value == NULL) |
|
7069 IN_param_value = function_call_param_iterator.next(); |
|
7070 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7071 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7072 |
|
7073 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
7074 { |
|
7075 |
|
7076 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
7077 return return_type_symbol; |
|
7078 |
|
7079 } |
|
7080 |
|
7081 ERROR; |
|
7082 } |
|
7083 |
|
7084 }/*function_time_to_byte*/ |
|
7085 break; |
|
7086 |
|
7087 /**** |
|
7088 *TIME_TO_WORD |
|
7089 */ |
|
7090 case function_time_to_word : |
|
7091 { |
|
7092 symbol_c *last_type_symbol = NULL; |
|
7093 |
|
7094 { |
|
7095 identifier_c param_name("IN"); |
|
7096 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7097 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7098 |
|
7099 /* Get the value from a foo(<param_value>) style call */ |
|
7100 if (IN_param_value == NULL) |
|
7101 IN_param_value = function_call_param_iterator.next(); |
|
7102 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7103 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7104 |
|
7105 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
7106 { |
|
7107 |
|
7108 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
7109 return return_type_symbol; |
|
7110 |
|
7111 } |
|
7112 |
|
7113 ERROR; |
|
7114 } |
|
7115 |
|
7116 }/*function_time_to_word*/ |
|
7117 break; |
|
7118 |
|
7119 /**** |
|
7120 *TIME_TO_DWORD |
|
7121 */ |
|
7122 case function_time_to_dword : |
|
7123 { |
|
7124 symbol_c *last_type_symbol = NULL; |
|
7125 |
|
7126 { |
|
7127 identifier_c param_name("IN"); |
|
7128 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7129 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7130 |
|
7131 /* Get the value from a foo(<param_value>) style call */ |
|
7132 if (IN_param_value == NULL) |
|
7133 IN_param_value = function_call_param_iterator.next(); |
|
7134 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7135 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7136 |
|
7137 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
7138 { |
|
7139 |
|
7140 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
7141 return return_type_symbol; |
|
7142 |
|
7143 } |
|
7144 |
|
7145 ERROR; |
|
7146 } |
|
7147 |
|
7148 }/*function_time_to_dword*/ |
|
7149 break; |
|
7150 |
|
7151 /**** |
|
7152 *TIME_TO_LWORD |
|
7153 */ |
|
7154 case function_time_to_lword : |
|
7155 { |
|
7156 symbol_c *last_type_symbol = NULL; |
|
7157 |
|
7158 { |
|
7159 identifier_c param_name("IN"); |
|
7160 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7161 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7162 |
|
7163 /* Get the value from a foo(<param_value>) style call */ |
|
7164 if (IN_param_value == NULL) |
|
7165 IN_param_value = function_call_param_iterator.next(); |
|
7166 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7167 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7168 |
|
7169 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
7170 { |
|
7171 |
|
7172 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
7173 return return_type_symbol; |
|
7174 |
|
7175 } |
|
7176 |
|
7177 ERROR; |
|
7178 } |
|
7179 |
|
7180 }/*function_time_to_lword*/ |
|
7181 break; |
|
7182 |
|
7183 /**** |
|
7184 *DATE_TO_SINT |
|
7185 */ |
|
7186 case function_date_to_sint : |
|
7187 { |
|
7188 symbol_c *last_type_symbol = NULL; |
|
7189 |
|
7190 { |
|
7191 identifier_c param_name("IN"); |
|
7192 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7193 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7194 |
|
7195 /* Get the value from a foo(<param_value>) style call */ |
|
7196 if (IN_param_value == NULL) |
|
7197 IN_param_value = function_call_param_iterator.next(); |
|
7198 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7199 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7200 |
|
7201 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
7202 { |
|
7203 |
|
7204 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
7205 return return_type_symbol; |
|
7206 |
|
7207 } |
|
7208 |
|
7209 ERROR; |
|
7210 } |
|
7211 |
|
7212 }/*function_date_to_sint*/ |
|
7213 break; |
|
7214 |
|
7215 /**** |
|
7216 *DATE_TO_INT |
|
7217 */ |
|
7218 case function_date_to_int : |
|
7219 { |
|
7220 symbol_c *last_type_symbol = NULL; |
|
7221 |
|
7222 { |
|
7223 identifier_c param_name("IN"); |
|
7224 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7225 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7226 |
|
7227 /* Get the value from a foo(<param_value>) style call */ |
|
7228 if (IN_param_value == NULL) |
|
7229 IN_param_value = function_call_param_iterator.next(); |
|
7230 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7231 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7232 |
|
7233 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
7234 { |
|
7235 |
|
7236 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
7237 return return_type_symbol; |
|
7238 |
|
7239 } |
|
7240 |
|
7241 ERROR; |
|
7242 } |
|
7243 |
|
7244 }/*function_date_to_int*/ |
|
7245 break; |
|
7246 |
|
7247 /**** |
|
7248 *DATE_TO_DINT |
|
7249 */ |
|
7250 case function_date_to_dint : |
|
7251 { |
|
7252 symbol_c *last_type_symbol = NULL; |
|
7253 |
|
7254 { |
|
7255 identifier_c param_name("IN"); |
|
7256 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7257 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7258 |
|
7259 /* Get the value from a foo(<param_value>) style call */ |
|
7260 if (IN_param_value == NULL) |
|
7261 IN_param_value = function_call_param_iterator.next(); |
|
7262 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7263 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7264 |
|
7265 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
7266 { |
|
7267 |
|
7268 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
7269 return return_type_symbol; |
|
7270 |
|
7271 } |
|
7272 |
|
7273 ERROR; |
|
7274 } |
|
7275 |
|
7276 }/*function_date_to_dint*/ |
|
7277 break; |
|
7278 |
|
7279 /**** |
|
7280 *DATE_TO_LINT |
|
7281 */ |
|
7282 case function_date_to_lint : |
|
7283 { |
|
7284 symbol_c *last_type_symbol = NULL; |
|
7285 |
|
7286 { |
|
7287 identifier_c param_name("IN"); |
|
7288 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7289 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7290 |
|
7291 /* Get the value from a foo(<param_value>) style call */ |
|
7292 if (IN_param_value == NULL) |
|
7293 IN_param_value = function_call_param_iterator.next(); |
|
7294 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7295 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7296 |
|
7297 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
7298 { |
|
7299 |
|
7300 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
7301 return return_type_symbol; |
|
7302 |
|
7303 } |
|
7304 |
|
7305 ERROR; |
|
7306 } |
|
7307 |
|
7308 }/*function_date_to_lint*/ |
|
7309 break; |
|
7310 |
|
7311 /**** |
|
7312 *DATE_TO_USINT |
|
7313 */ |
|
7314 case function_date_to_usint : |
|
7315 { |
|
7316 symbol_c *last_type_symbol = NULL; |
|
7317 |
|
7318 { |
|
7319 identifier_c param_name("IN"); |
|
7320 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7321 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7322 |
|
7323 /* Get the value from a foo(<param_value>) style call */ |
|
7324 if (IN_param_value == NULL) |
|
7325 IN_param_value = function_call_param_iterator.next(); |
|
7326 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7327 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7328 |
|
7329 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
7330 { |
|
7331 |
|
7332 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
7333 return return_type_symbol; |
|
7334 |
|
7335 } |
|
7336 |
|
7337 ERROR; |
|
7338 } |
|
7339 |
|
7340 }/*function_date_to_usint*/ |
|
7341 break; |
|
7342 |
|
7343 /**** |
|
7344 *DATE_TO_UINT |
|
7345 */ |
|
7346 case function_date_to_uint : |
|
7347 { |
|
7348 symbol_c *last_type_symbol = NULL; |
|
7349 |
|
7350 { |
|
7351 identifier_c param_name("IN"); |
|
7352 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7353 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7354 |
|
7355 /* Get the value from a foo(<param_value>) style call */ |
|
7356 if (IN_param_value == NULL) |
|
7357 IN_param_value = function_call_param_iterator.next(); |
|
7358 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7359 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7360 |
|
7361 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
7362 { |
|
7363 |
|
7364 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
7365 return return_type_symbol; |
|
7366 |
|
7367 } |
|
7368 |
|
7369 ERROR; |
|
7370 } |
|
7371 |
|
7372 }/*function_date_to_uint*/ |
|
7373 break; |
|
7374 |
|
7375 /**** |
|
7376 *DATE_TO_UDINT |
|
7377 */ |
|
7378 case function_date_to_udint : |
|
7379 { |
|
7380 symbol_c *last_type_symbol = NULL; |
|
7381 |
|
7382 { |
|
7383 identifier_c param_name("IN"); |
|
7384 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7385 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7386 |
|
7387 /* Get the value from a foo(<param_value>) style call */ |
|
7388 if (IN_param_value == NULL) |
|
7389 IN_param_value = function_call_param_iterator.next(); |
|
7390 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7391 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7392 |
|
7393 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
7394 { |
|
7395 |
|
7396 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
7397 return return_type_symbol; |
|
7398 |
|
7399 } |
|
7400 |
|
7401 ERROR; |
|
7402 } |
|
7403 |
|
7404 }/*function_date_to_udint*/ |
|
7405 break; |
|
7406 |
|
7407 /**** |
|
7408 *DATE_TO_ULINT |
|
7409 */ |
|
7410 case function_date_to_ulint : |
|
7411 { |
|
7412 symbol_c *last_type_symbol = NULL; |
|
7413 |
|
7414 { |
|
7415 identifier_c param_name("IN"); |
|
7416 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7417 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7418 |
|
7419 /* Get the value from a foo(<param_value>) style call */ |
|
7420 if (IN_param_value == NULL) |
|
7421 IN_param_value = function_call_param_iterator.next(); |
|
7422 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7423 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7424 |
|
7425 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
7426 { |
|
7427 |
|
7428 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
7429 return return_type_symbol; |
|
7430 |
|
7431 } |
|
7432 |
|
7433 ERROR; |
|
7434 } |
|
7435 |
|
7436 }/*function_date_to_ulint*/ |
|
7437 break; |
|
7438 |
|
7439 /**** |
|
7440 *DATE_TO_REAL |
|
7441 */ |
|
7442 case function_date_to_real : |
|
7443 { |
|
7444 symbol_c *last_type_symbol = NULL; |
|
7445 |
|
7446 { |
|
7447 identifier_c param_name("IN"); |
|
7448 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7449 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7450 |
|
7451 /* Get the value from a foo(<param_value>) style call */ |
|
7452 if (IN_param_value == NULL) |
|
7453 IN_param_value = function_call_param_iterator.next(); |
|
7454 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7455 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7456 |
|
7457 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
7458 { |
|
7459 |
|
7460 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
7461 return return_type_symbol; |
|
7462 |
|
7463 } |
|
7464 |
|
7465 ERROR; |
|
7466 } |
|
7467 |
|
7468 }/*function_date_to_real*/ |
|
7469 break; |
|
7470 |
|
7471 /**** |
|
7472 *DATE_TO_LREAL |
|
7473 */ |
|
7474 case function_date_to_lreal : |
|
7475 { |
|
7476 symbol_c *last_type_symbol = NULL; |
|
7477 |
|
7478 { |
|
7479 identifier_c param_name("IN"); |
|
7480 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7481 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7482 |
|
7483 /* Get the value from a foo(<param_value>) style call */ |
|
7484 if (IN_param_value == NULL) |
|
7485 IN_param_value = function_call_param_iterator.next(); |
|
7486 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7487 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7488 |
|
7489 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
7490 { |
|
7491 |
|
7492 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
7493 return return_type_symbol; |
|
7494 |
|
7495 } |
|
7496 |
|
7497 ERROR; |
|
7498 } |
|
7499 |
|
7500 }/*function_date_to_lreal*/ |
|
7501 break; |
|
7502 |
|
7503 /**** |
|
7504 *DATE_TO_STRING |
|
7505 */ |
|
7506 case function_date_to_string : |
|
7507 { |
|
7508 symbol_c *last_type_symbol = NULL; |
|
7509 |
|
7510 { |
|
7511 identifier_c param_name("IN"); |
|
7512 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7513 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7514 |
|
7515 /* Get the value from a foo(<param_value>) style call */ |
|
7516 if (IN_param_value == NULL) |
|
7517 IN_param_value = function_call_param_iterator.next(); |
|
7518 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7519 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7520 |
|
7521 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
7522 { |
|
7523 |
|
7524 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
7525 return return_type_symbol; |
|
7526 |
|
7527 } |
|
7528 |
|
7529 ERROR; |
|
7530 } |
|
7531 |
|
7532 }/*function_date_to_string*/ |
|
7533 break; |
|
7534 |
|
7535 /**** |
|
7536 *DATE_TO_BYTE |
|
7537 */ |
|
7538 case function_date_to_byte : |
|
7539 { |
|
7540 symbol_c *last_type_symbol = NULL; |
|
7541 |
|
7542 { |
|
7543 identifier_c param_name("IN"); |
|
7544 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7545 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7546 |
|
7547 /* Get the value from a foo(<param_value>) style call */ |
|
7548 if (IN_param_value == NULL) |
|
7549 IN_param_value = function_call_param_iterator.next(); |
|
7550 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7551 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7552 |
|
7553 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
7554 { |
|
7555 |
|
7556 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
7557 return return_type_symbol; |
|
7558 |
|
7559 } |
|
7560 |
|
7561 ERROR; |
|
7562 } |
|
7563 |
|
7564 }/*function_date_to_byte*/ |
|
7565 break; |
|
7566 |
|
7567 /**** |
|
7568 *DATE_TO_WORD |
|
7569 */ |
|
7570 case function_date_to_word : |
|
7571 { |
|
7572 symbol_c *last_type_symbol = NULL; |
|
7573 |
|
7574 { |
|
7575 identifier_c param_name("IN"); |
|
7576 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7577 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7578 |
|
7579 /* Get the value from a foo(<param_value>) style call */ |
|
7580 if (IN_param_value == NULL) |
|
7581 IN_param_value = function_call_param_iterator.next(); |
|
7582 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7583 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7584 |
|
7585 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
7586 { |
|
7587 |
|
7588 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
7589 return return_type_symbol; |
|
7590 |
|
7591 } |
|
7592 |
|
7593 ERROR; |
|
7594 } |
|
7595 |
|
7596 }/*function_date_to_word*/ |
|
7597 break; |
|
7598 |
|
7599 /**** |
|
7600 *DATE_TO_DWORD |
|
7601 */ |
|
7602 case function_date_to_dword : |
|
7603 { |
|
7604 symbol_c *last_type_symbol = NULL; |
|
7605 |
|
7606 { |
|
7607 identifier_c param_name("IN"); |
|
7608 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7609 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7610 |
|
7611 /* Get the value from a foo(<param_value>) style call */ |
|
7612 if (IN_param_value == NULL) |
|
7613 IN_param_value = function_call_param_iterator.next(); |
|
7614 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7615 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7616 |
|
7617 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
7618 { |
|
7619 |
|
7620 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
7621 return return_type_symbol; |
|
7622 |
|
7623 } |
|
7624 |
|
7625 ERROR; |
|
7626 } |
|
7627 |
|
7628 }/*function_date_to_dword*/ |
|
7629 break; |
|
7630 |
|
7631 /**** |
|
7632 *DATE_TO_LWORD |
|
7633 */ |
|
7634 case function_date_to_lword : |
|
7635 { |
|
7636 symbol_c *last_type_symbol = NULL; |
|
7637 |
|
7638 { |
|
7639 identifier_c param_name("IN"); |
|
7640 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7641 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7642 |
|
7643 /* Get the value from a foo(<param_value>) style call */ |
|
7644 if (IN_param_value == NULL) |
|
7645 IN_param_value = function_call_param_iterator.next(); |
|
7646 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7647 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7648 |
|
7649 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
7650 { |
|
7651 |
|
7652 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
7653 return return_type_symbol; |
|
7654 |
|
7655 } |
|
7656 |
|
7657 ERROR; |
|
7658 } |
|
7659 |
|
7660 }/*function_date_to_lword*/ |
|
7661 break; |
|
7662 |
|
7663 /**** |
|
7664 *TOD_TO_SINT |
|
7665 */ |
|
7666 case function_tod_to_sint : |
|
7667 { |
|
7668 symbol_c *last_type_symbol = NULL; |
|
7669 |
|
7670 { |
|
7671 identifier_c param_name("IN"); |
|
7672 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7673 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7674 |
|
7675 /* Get the value from a foo(<param_value>) style call */ |
|
7676 if (IN_param_value == NULL) |
|
7677 IN_param_value = function_call_param_iterator.next(); |
|
7678 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7679 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7680 |
|
7681 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
7682 { |
|
7683 |
|
7684 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
7685 return return_type_symbol; |
|
7686 |
|
7687 } |
|
7688 |
|
7689 ERROR; |
|
7690 } |
|
7691 |
|
7692 }/*function_tod_to_sint*/ |
|
7693 break; |
|
7694 |
|
7695 /**** |
|
7696 *TOD_TO_INT |
|
7697 */ |
|
7698 case function_tod_to_int : |
|
7699 { |
|
7700 symbol_c *last_type_symbol = NULL; |
|
7701 |
|
7702 { |
|
7703 identifier_c param_name("IN"); |
|
7704 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7705 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7706 |
|
7707 /* Get the value from a foo(<param_value>) style call */ |
|
7708 if (IN_param_value == NULL) |
|
7709 IN_param_value = function_call_param_iterator.next(); |
|
7710 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7711 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7712 |
|
7713 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
7714 { |
|
7715 |
|
7716 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
7717 return return_type_symbol; |
|
7718 |
|
7719 } |
|
7720 |
|
7721 ERROR; |
|
7722 } |
|
7723 |
|
7724 }/*function_tod_to_int*/ |
|
7725 break; |
|
7726 |
|
7727 /**** |
|
7728 *TOD_TO_DINT |
|
7729 */ |
|
7730 case function_tod_to_dint : |
|
7731 { |
|
7732 symbol_c *last_type_symbol = NULL; |
|
7733 |
|
7734 { |
|
7735 identifier_c param_name("IN"); |
|
7736 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7737 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7738 |
|
7739 /* Get the value from a foo(<param_value>) style call */ |
|
7740 if (IN_param_value == NULL) |
|
7741 IN_param_value = function_call_param_iterator.next(); |
|
7742 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7743 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7744 |
|
7745 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
7746 { |
|
7747 |
|
7748 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
7749 return return_type_symbol; |
|
7750 |
|
7751 } |
|
7752 |
|
7753 ERROR; |
|
7754 } |
|
7755 |
|
7756 }/*function_tod_to_dint*/ |
|
7757 break; |
|
7758 |
|
7759 /**** |
|
7760 *TOD_TO_LINT |
|
7761 */ |
|
7762 case function_tod_to_lint : |
|
7763 { |
|
7764 symbol_c *last_type_symbol = NULL; |
|
7765 |
|
7766 { |
|
7767 identifier_c param_name("IN"); |
|
7768 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7769 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7770 |
|
7771 /* Get the value from a foo(<param_value>) style call */ |
|
7772 if (IN_param_value == NULL) |
|
7773 IN_param_value = function_call_param_iterator.next(); |
|
7774 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7775 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7776 |
|
7777 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
7778 { |
|
7779 |
|
7780 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
7781 return return_type_symbol; |
|
7782 |
|
7783 } |
|
7784 |
|
7785 ERROR; |
|
7786 } |
|
7787 |
|
7788 }/*function_tod_to_lint*/ |
|
7789 break; |
|
7790 |
|
7791 /**** |
|
7792 *TOD_TO_USINT |
|
7793 */ |
|
7794 case function_tod_to_usint : |
|
7795 { |
|
7796 symbol_c *last_type_symbol = NULL; |
|
7797 |
|
7798 { |
|
7799 identifier_c param_name("IN"); |
|
7800 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7801 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7802 |
|
7803 /* Get the value from a foo(<param_value>) style call */ |
|
7804 if (IN_param_value == NULL) |
|
7805 IN_param_value = function_call_param_iterator.next(); |
|
7806 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7807 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7808 |
|
7809 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
7810 { |
|
7811 |
|
7812 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
7813 return return_type_symbol; |
|
7814 |
|
7815 } |
|
7816 |
|
7817 ERROR; |
|
7818 } |
|
7819 |
|
7820 }/*function_tod_to_usint*/ |
|
7821 break; |
|
7822 |
|
7823 /**** |
|
7824 *TOD_TO_UINT |
|
7825 */ |
|
7826 case function_tod_to_uint : |
|
7827 { |
|
7828 symbol_c *last_type_symbol = NULL; |
|
7829 |
|
7830 { |
|
7831 identifier_c param_name("IN"); |
|
7832 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7833 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7834 |
|
7835 /* Get the value from a foo(<param_value>) style call */ |
|
7836 if (IN_param_value == NULL) |
|
7837 IN_param_value = function_call_param_iterator.next(); |
|
7838 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7839 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7840 |
|
7841 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
7842 { |
|
7843 |
|
7844 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
7845 return return_type_symbol; |
|
7846 |
|
7847 } |
|
7848 |
|
7849 ERROR; |
|
7850 } |
|
7851 |
|
7852 }/*function_tod_to_uint*/ |
|
7853 break; |
|
7854 |
|
7855 /**** |
|
7856 *TOD_TO_UDINT |
|
7857 */ |
|
7858 case function_tod_to_udint : |
|
7859 { |
|
7860 symbol_c *last_type_symbol = NULL; |
|
7861 |
|
7862 { |
|
7863 identifier_c param_name("IN"); |
|
7864 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7865 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7866 |
|
7867 /* Get the value from a foo(<param_value>) style call */ |
|
7868 if (IN_param_value == NULL) |
|
7869 IN_param_value = function_call_param_iterator.next(); |
|
7870 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7871 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7872 |
|
7873 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
7874 { |
|
7875 |
|
7876 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
7877 return return_type_symbol; |
|
7878 |
|
7879 } |
|
7880 |
|
7881 ERROR; |
|
7882 } |
|
7883 |
|
7884 }/*function_tod_to_udint*/ |
|
7885 break; |
|
7886 |
|
7887 /**** |
|
7888 *TOD_TO_ULINT |
|
7889 */ |
|
7890 case function_tod_to_ulint : |
|
7891 { |
|
7892 symbol_c *last_type_symbol = NULL; |
|
7893 |
|
7894 { |
|
7895 identifier_c param_name("IN"); |
|
7896 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7897 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7898 |
|
7899 /* Get the value from a foo(<param_value>) style call */ |
|
7900 if (IN_param_value == NULL) |
|
7901 IN_param_value = function_call_param_iterator.next(); |
|
7902 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7903 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7904 |
|
7905 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
7906 { |
|
7907 |
|
7908 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
7909 return return_type_symbol; |
|
7910 |
|
7911 } |
|
7912 |
|
7913 ERROR; |
|
7914 } |
|
7915 |
|
7916 }/*function_tod_to_ulint*/ |
|
7917 break; |
|
7918 |
|
7919 /**** |
|
7920 *TOD_TO_REAL |
|
7921 */ |
|
7922 case function_tod_to_real : |
|
7923 { |
|
7924 symbol_c *last_type_symbol = NULL; |
|
7925 |
|
7926 { |
|
7927 identifier_c param_name("IN"); |
|
7928 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7929 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7930 |
|
7931 /* Get the value from a foo(<param_value>) style call */ |
|
7932 if (IN_param_value == NULL) |
|
7933 IN_param_value = function_call_param_iterator.next(); |
|
7934 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7935 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7936 |
|
7937 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
7938 { |
|
7939 |
|
7940 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
7941 return return_type_symbol; |
|
7942 |
|
7943 } |
|
7944 |
|
7945 ERROR; |
|
7946 } |
|
7947 |
|
7948 }/*function_tod_to_real*/ |
|
7949 break; |
|
7950 |
|
7951 /**** |
|
7952 *TOD_TO_LREAL |
|
7953 */ |
|
7954 case function_tod_to_lreal : |
|
7955 { |
|
7956 symbol_c *last_type_symbol = NULL; |
|
7957 |
|
7958 { |
|
7959 identifier_c param_name("IN"); |
|
7960 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7961 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7962 |
|
7963 /* Get the value from a foo(<param_value>) style call */ |
|
7964 if (IN_param_value == NULL) |
|
7965 IN_param_value = function_call_param_iterator.next(); |
|
7966 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7967 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7968 |
|
7969 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
7970 { |
|
7971 |
|
7972 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
7973 return return_type_symbol; |
|
7974 |
|
7975 } |
|
7976 |
|
7977 ERROR; |
|
7978 } |
|
7979 |
|
7980 }/*function_tod_to_lreal*/ |
|
7981 break; |
|
7982 |
|
7983 /**** |
|
7984 *TOD_TO_STRING |
|
7985 */ |
|
7986 case function_tod_to_string : |
|
7987 { |
|
7988 symbol_c *last_type_symbol = NULL; |
|
7989 |
|
7990 { |
|
7991 identifier_c param_name("IN"); |
|
7992 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7993 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7994 |
|
7995 /* Get the value from a foo(<param_value>) style call */ |
|
7996 if (IN_param_value == NULL) |
|
7997 IN_param_value = function_call_param_iterator.next(); |
|
7998 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7999 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8000 |
|
8001 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
8002 { |
|
8003 |
|
8004 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
8005 return return_type_symbol; |
|
8006 |
|
8007 } |
|
8008 |
|
8009 ERROR; |
|
8010 } |
|
8011 |
|
8012 }/*function_tod_to_string*/ |
|
8013 break; |
|
8014 |
|
8015 /**** |
|
8016 *TOD_TO_BYTE |
|
8017 */ |
|
8018 case function_tod_to_byte : |
|
8019 { |
|
8020 symbol_c *last_type_symbol = NULL; |
|
8021 |
|
8022 { |
|
8023 identifier_c param_name("IN"); |
|
8024 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8025 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8026 |
|
8027 /* Get the value from a foo(<param_value>) style call */ |
|
8028 if (IN_param_value == NULL) |
|
8029 IN_param_value = function_call_param_iterator.next(); |
|
8030 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8031 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8032 |
|
8033 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
8034 { |
|
8035 |
|
8036 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
8037 return return_type_symbol; |
|
8038 |
|
8039 } |
|
8040 |
|
8041 ERROR; |
|
8042 } |
|
8043 |
|
8044 }/*function_tod_to_byte*/ |
|
8045 break; |
|
8046 |
|
8047 /**** |
|
8048 *TOD_TO_WORD |
|
8049 */ |
|
8050 case function_tod_to_word : |
|
8051 { |
|
8052 symbol_c *last_type_symbol = NULL; |
|
8053 |
|
8054 { |
|
8055 identifier_c param_name("IN"); |
|
8056 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8057 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8058 |
|
8059 /* Get the value from a foo(<param_value>) style call */ |
|
8060 if (IN_param_value == NULL) |
|
8061 IN_param_value = function_call_param_iterator.next(); |
|
8062 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8063 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8064 |
|
8065 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
8066 { |
|
8067 |
|
8068 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
8069 return return_type_symbol; |
|
8070 |
|
8071 } |
|
8072 |
|
8073 ERROR; |
|
8074 } |
|
8075 |
|
8076 }/*function_tod_to_word*/ |
|
8077 break; |
|
8078 |
|
8079 /**** |
|
8080 *TOD_TO_DWORD |
|
8081 */ |
|
8082 case function_tod_to_dword : |
|
8083 { |
|
8084 symbol_c *last_type_symbol = NULL; |
|
8085 |
|
8086 { |
|
8087 identifier_c param_name("IN"); |
|
8088 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8089 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8090 |
|
8091 /* Get the value from a foo(<param_value>) style call */ |
|
8092 if (IN_param_value == NULL) |
|
8093 IN_param_value = function_call_param_iterator.next(); |
|
8094 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8095 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8096 |
|
8097 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
8098 { |
|
8099 |
|
8100 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
8101 return return_type_symbol; |
|
8102 |
|
8103 } |
|
8104 |
|
8105 ERROR; |
|
8106 } |
|
8107 |
|
8108 }/*function_tod_to_dword*/ |
|
8109 break; |
|
8110 |
|
8111 /**** |
|
8112 *TOD_TO_LWORD |
|
8113 */ |
|
8114 case function_tod_to_lword : |
|
8115 { |
|
8116 symbol_c *last_type_symbol = NULL; |
|
8117 |
|
8118 { |
|
8119 identifier_c param_name("IN"); |
|
8120 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8121 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8122 |
|
8123 /* Get the value from a foo(<param_value>) style call */ |
|
8124 if (IN_param_value == NULL) |
|
8125 IN_param_value = function_call_param_iterator.next(); |
|
8126 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8127 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8128 |
|
8129 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
8130 { |
|
8131 |
|
8132 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
8133 return return_type_symbol; |
|
8134 |
|
8135 } |
|
8136 |
|
8137 ERROR; |
|
8138 } |
|
8139 |
|
8140 }/*function_tod_to_lword*/ |
|
8141 break; |
|
8142 |
|
8143 /**** |
|
8144 *DT_TO_SINT |
|
8145 */ |
|
8146 case function_dt_to_sint : |
|
8147 { |
|
8148 symbol_c *last_type_symbol = NULL; |
|
8149 |
|
8150 { |
|
8151 identifier_c param_name("IN"); |
|
8152 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8153 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8154 |
|
8155 /* Get the value from a foo(<param_value>) style call */ |
|
8156 if (IN_param_value == NULL) |
|
8157 IN_param_value = function_call_param_iterator.next(); |
|
8158 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8159 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8160 |
|
8161 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
8162 { |
|
8163 |
|
8164 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
8165 return return_type_symbol; |
|
8166 |
|
8167 } |
|
8168 |
|
8169 ERROR; |
|
8170 } |
|
8171 |
|
8172 }/*function_dt_to_sint*/ |
|
8173 break; |
|
8174 |
|
8175 /**** |
|
8176 *DT_TO_INT |
|
8177 */ |
|
8178 case function_dt_to_int : |
|
8179 { |
|
8180 symbol_c *last_type_symbol = NULL; |
|
8181 |
|
8182 { |
|
8183 identifier_c param_name("IN"); |
|
8184 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8185 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8186 |
|
8187 /* Get the value from a foo(<param_value>) style call */ |
|
8188 if (IN_param_value == NULL) |
|
8189 IN_param_value = function_call_param_iterator.next(); |
|
8190 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8191 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8192 |
|
8193 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
8194 { |
|
8195 |
|
8196 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
8197 return return_type_symbol; |
|
8198 |
|
8199 } |
|
8200 |
|
8201 ERROR; |
|
8202 } |
|
8203 |
|
8204 }/*function_dt_to_int*/ |
|
8205 break; |
|
8206 |
|
8207 /**** |
|
8208 *DT_TO_DINT |
|
8209 */ |
|
8210 case function_dt_to_dint : |
|
8211 { |
|
8212 symbol_c *last_type_symbol = NULL; |
|
8213 |
|
8214 { |
|
8215 identifier_c param_name("IN"); |
|
8216 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8217 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8218 |
|
8219 /* Get the value from a foo(<param_value>) style call */ |
|
8220 if (IN_param_value == NULL) |
|
8221 IN_param_value = function_call_param_iterator.next(); |
|
8222 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8223 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8224 |
|
8225 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
8226 { |
|
8227 |
|
8228 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
8229 return return_type_symbol; |
|
8230 |
|
8231 } |
|
8232 |
|
8233 ERROR; |
|
8234 } |
|
8235 |
|
8236 }/*function_dt_to_dint*/ |
|
8237 break; |
|
8238 |
|
8239 /**** |
|
8240 *DT_TO_LINT |
|
8241 */ |
|
8242 case function_dt_to_lint : |
|
8243 { |
|
8244 symbol_c *last_type_symbol = NULL; |
|
8245 |
|
8246 { |
|
8247 identifier_c param_name("IN"); |
|
8248 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8249 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8250 |
|
8251 /* Get the value from a foo(<param_value>) style call */ |
|
8252 if (IN_param_value == NULL) |
|
8253 IN_param_value = function_call_param_iterator.next(); |
|
8254 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8255 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8256 |
|
8257 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
8258 { |
|
8259 |
|
8260 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
8261 return return_type_symbol; |
|
8262 |
|
8263 } |
|
8264 |
|
8265 ERROR; |
|
8266 } |
|
8267 |
|
8268 }/*function_dt_to_lint*/ |
|
8269 break; |
|
8270 |
|
8271 /**** |
|
8272 *DT_TO_USINT |
|
8273 */ |
|
8274 case function_dt_to_usint : |
|
8275 { |
|
8276 symbol_c *last_type_symbol = NULL; |
|
8277 |
|
8278 { |
|
8279 identifier_c param_name("IN"); |
|
8280 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8281 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8282 |
|
8283 /* Get the value from a foo(<param_value>) style call */ |
|
8284 if (IN_param_value == NULL) |
|
8285 IN_param_value = function_call_param_iterator.next(); |
|
8286 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8287 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8288 |
|
8289 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
8290 { |
|
8291 |
|
8292 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
8293 return return_type_symbol; |
|
8294 |
|
8295 } |
|
8296 |
|
8297 ERROR; |
|
8298 } |
|
8299 |
|
8300 }/*function_dt_to_usint*/ |
|
8301 break; |
|
8302 |
|
8303 /**** |
|
8304 *DT_TO_UINT |
|
8305 */ |
|
8306 case function_dt_to_uint : |
|
8307 { |
|
8308 symbol_c *last_type_symbol = NULL; |
|
8309 |
|
8310 { |
|
8311 identifier_c param_name("IN"); |
|
8312 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8313 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8314 |
|
8315 /* Get the value from a foo(<param_value>) style call */ |
|
8316 if (IN_param_value == NULL) |
|
8317 IN_param_value = function_call_param_iterator.next(); |
|
8318 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8319 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8320 |
|
8321 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
8322 { |
|
8323 |
|
8324 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
8325 return return_type_symbol; |
|
8326 |
|
8327 } |
|
8328 |
|
8329 ERROR; |
|
8330 } |
|
8331 |
|
8332 }/*function_dt_to_uint*/ |
|
8333 break; |
|
8334 |
|
8335 /**** |
|
8336 *DT_TO_UDINT |
|
8337 */ |
|
8338 case function_dt_to_udint : |
|
8339 { |
|
8340 symbol_c *last_type_symbol = NULL; |
|
8341 |
|
8342 { |
|
8343 identifier_c param_name("IN"); |
|
8344 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8345 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8346 |
|
8347 /* Get the value from a foo(<param_value>) style call */ |
|
8348 if (IN_param_value == NULL) |
|
8349 IN_param_value = function_call_param_iterator.next(); |
|
8350 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8351 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8352 |
|
8353 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
8354 { |
|
8355 |
|
8356 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
8357 return return_type_symbol; |
|
8358 |
|
8359 } |
|
8360 |
|
8361 ERROR; |
|
8362 } |
|
8363 |
|
8364 }/*function_dt_to_udint*/ |
|
8365 break; |
|
8366 |
|
8367 /**** |
|
8368 *DT_TO_ULINT |
|
8369 */ |
|
8370 case function_dt_to_ulint : |
|
8371 { |
|
8372 symbol_c *last_type_symbol = NULL; |
|
8373 |
|
8374 { |
|
8375 identifier_c param_name("IN"); |
|
8376 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8377 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8378 |
|
8379 /* Get the value from a foo(<param_value>) style call */ |
|
8380 if (IN_param_value == NULL) |
|
8381 IN_param_value = function_call_param_iterator.next(); |
|
8382 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8383 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8384 |
|
8385 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
8386 { |
|
8387 |
|
8388 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
8389 return return_type_symbol; |
|
8390 |
|
8391 } |
|
8392 |
|
8393 ERROR; |
|
8394 } |
|
8395 |
|
8396 }/*function_dt_to_ulint*/ |
|
8397 break; |
|
8398 |
|
8399 /**** |
|
8400 *DT_TO_REAL |
|
8401 */ |
|
8402 case function_dt_to_real : |
|
8403 { |
|
8404 symbol_c *last_type_symbol = NULL; |
|
8405 |
|
8406 { |
|
8407 identifier_c param_name("IN"); |
|
8408 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8409 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8410 |
|
8411 /* Get the value from a foo(<param_value>) style call */ |
|
8412 if (IN_param_value == NULL) |
|
8413 IN_param_value = function_call_param_iterator.next(); |
|
8414 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8415 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8416 |
|
8417 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
8418 { |
|
8419 |
|
8420 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
8421 return return_type_symbol; |
|
8422 |
|
8423 } |
|
8424 |
|
8425 ERROR; |
|
8426 } |
|
8427 |
|
8428 }/*function_dt_to_real*/ |
|
8429 break; |
|
8430 |
|
8431 /**** |
|
8432 *DT_TO_LREAL |
|
8433 */ |
|
8434 case function_dt_to_lreal : |
|
8435 { |
|
8436 symbol_c *last_type_symbol = NULL; |
|
8437 |
|
8438 { |
|
8439 identifier_c param_name("IN"); |
|
8440 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8441 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8442 |
|
8443 /* Get the value from a foo(<param_value>) style call */ |
|
8444 if (IN_param_value == NULL) |
|
8445 IN_param_value = function_call_param_iterator.next(); |
|
8446 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8447 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8448 |
|
8449 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
8450 { |
|
8451 |
|
8452 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
8453 return return_type_symbol; |
|
8454 |
|
8455 } |
|
8456 |
|
8457 ERROR; |
|
8458 } |
|
8459 |
|
8460 }/*function_dt_to_lreal*/ |
|
8461 break; |
|
8462 |
|
8463 /**** |
|
8464 *DT_TO_STRING |
|
8465 */ |
|
8466 case function_dt_to_string : |
|
8467 { |
|
8468 symbol_c *last_type_symbol = NULL; |
|
8469 |
|
8470 { |
|
8471 identifier_c param_name("IN"); |
|
8472 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8473 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8474 |
|
8475 /* Get the value from a foo(<param_value>) style call */ |
|
8476 if (IN_param_value == NULL) |
|
8477 IN_param_value = function_call_param_iterator.next(); |
|
8478 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8479 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8480 |
|
8481 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
8482 { |
|
8483 |
|
8484 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
8485 return return_type_symbol; |
|
8486 |
|
8487 } |
|
8488 |
|
8489 ERROR; |
|
8490 } |
|
8491 |
|
8492 }/*function_dt_to_string*/ |
|
8493 break; |
|
8494 |
|
8495 /**** |
|
8496 *DT_TO_BYTE |
|
8497 */ |
|
8498 case function_dt_to_byte : |
|
8499 { |
|
8500 symbol_c *last_type_symbol = NULL; |
|
8501 |
|
8502 { |
|
8503 identifier_c param_name("IN"); |
|
8504 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8505 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8506 |
|
8507 /* Get the value from a foo(<param_value>) style call */ |
|
8508 if (IN_param_value == NULL) |
|
8509 IN_param_value = function_call_param_iterator.next(); |
|
8510 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8511 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8512 |
|
8513 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
8514 { |
|
8515 |
|
8516 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
8517 return return_type_symbol; |
|
8518 |
|
8519 } |
|
8520 |
|
8521 ERROR; |
|
8522 } |
|
8523 |
|
8524 }/*function_dt_to_byte*/ |
|
8525 break; |
|
8526 |
|
8527 /**** |
|
8528 *DT_TO_WORD |
|
8529 */ |
|
8530 case function_dt_to_word : |
|
8531 { |
|
8532 symbol_c *last_type_symbol = NULL; |
|
8533 |
|
8534 { |
|
8535 identifier_c param_name("IN"); |
|
8536 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8537 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8538 |
|
8539 /* Get the value from a foo(<param_value>) style call */ |
|
8540 if (IN_param_value == NULL) |
|
8541 IN_param_value = function_call_param_iterator.next(); |
|
8542 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8543 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8544 |
|
8545 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
8546 { |
|
8547 |
|
8548 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
8549 return return_type_symbol; |
|
8550 |
|
8551 } |
|
8552 |
|
8553 ERROR; |
|
8554 } |
|
8555 |
|
8556 }/*function_dt_to_word*/ |
|
8557 break; |
|
8558 |
|
8559 /**** |
|
8560 *DT_TO_DWORD |
|
8561 */ |
|
8562 case function_dt_to_dword : |
|
8563 { |
|
8564 symbol_c *last_type_symbol = NULL; |
|
8565 |
|
8566 { |
|
8567 identifier_c param_name("IN"); |
|
8568 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8569 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8570 |
|
8571 /* Get the value from a foo(<param_value>) style call */ |
|
8572 if (IN_param_value == NULL) |
|
8573 IN_param_value = function_call_param_iterator.next(); |
|
8574 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8575 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8576 |
|
8577 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
8578 { |
|
8579 |
|
8580 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
8581 return return_type_symbol; |
|
8582 |
|
8583 } |
|
8584 |
|
8585 ERROR; |
|
8586 } |
|
8587 |
|
8588 }/*function_dt_to_dword*/ |
|
8589 break; |
|
8590 |
|
8591 /**** |
|
8592 *DT_TO_LWORD |
|
8593 */ |
|
8594 case function_dt_to_lword : |
|
8595 { |
|
8596 symbol_c *last_type_symbol = NULL; |
|
8597 |
|
8598 { |
|
8599 identifier_c param_name("IN"); |
|
8600 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8601 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8602 |
|
8603 /* Get the value from a foo(<param_value>) style call */ |
|
8604 if (IN_param_value == NULL) |
|
8605 IN_param_value = function_call_param_iterator.next(); |
|
8606 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8607 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8608 |
|
8609 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
8610 { |
|
8611 |
|
8612 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
8613 return return_type_symbol; |
|
8614 |
|
8615 } |
|
8616 |
|
8617 ERROR; |
|
8618 } |
|
8619 |
|
8620 }/*function_dt_to_lword*/ |
|
8621 break; |
|
8622 |
|
8623 /**** |
|
8624 *STRING_TO_BOOL |
|
8625 */ |
|
8626 case function_string_to_bool : |
|
8627 { |
|
8628 symbol_c *last_type_symbol = NULL; |
|
8629 |
|
8630 { |
|
8631 identifier_c param_name("IN"); |
|
8632 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8633 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8634 |
|
8635 /* Get the value from a foo(<param_value>) style call */ |
|
8636 if (IN_param_value == NULL) |
|
8637 IN_param_value = function_call_param_iterator.next(); |
|
8638 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8639 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8640 |
|
8641 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
6722 { |
8642 { |
6723 |
8643 |
6724 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
8644 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
6725 return return_type_symbol; |
8645 return return_type_symbol; |
6726 |
8646 |
6727 } |
8647 } |
6728 |
8648 |
6729 ERROR; |
8649 ERROR; |
6730 } |
8650 } |
6731 |
8651 |
6732 }/*function_time_to_bool*/ |
8652 }/*function_string_to_bool*/ |
6733 break; |
8653 break; |
6734 |
8654 |
6735 /**** |
8655 /**** |
6736 *TIME_TO_SINT |
8656 *STRING_TO_SINT |
6737 */ |
8657 */ |
6738 case function_time_to_sint : |
8658 case function_string_to_sint : |
6739 { |
8659 { |
6740 symbol_c *last_type_symbol = NULL; |
8660 symbol_c *last_type_symbol = NULL; |
6741 |
8661 |
6742 { |
8662 { |
6743 identifier_c param_name("IN"); |
8663 identifier_c param_name("IN"); |
6744 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
8664 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
6745 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
8665 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
6746 |
8666 |
6747 /* Get the value from a foo(<param_value>) style call */ |
8667 /* Get the value from a foo(<param_value>) style call */ |
6748 if (IN_param_value == NULL) |
8668 if (IN_param_value == NULL) |
6749 IN_param_value = function_call_param_iterator.next(); |
8669 IN_param_value = function_call_param_iterator.next(); |
6750 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
8670 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
6751 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
8671 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
6752 |
8672 |
6753 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
8673 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
6754 { |
8674 { |
6755 |
8675 |
6756 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
8676 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
6757 return return_type_symbol; |
8677 return return_type_symbol; |
6758 |
8678 |
6759 } |
8679 } |
6760 |
8680 |
6761 ERROR; |
8681 ERROR; |
6762 } |
8682 } |
6763 |
8683 |
6764 }/*function_time_to_sint*/ |
8684 }/*function_string_to_sint*/ |
6765 break; |
8685 break; |
6766 |
8686 |
6767 /**** |
8687 /**** |
6768 *TIME_TO_INT |
8688 *STRING_TO_INT |
6769 */ |
8689 */ |
6770 case function_time_to_int : |
8690 case function_string_to_int : |
6771 { |
8691 { |
6772 symbol_c *last_type_symbol = NULL; |
8692 symbol_c *last_type_symbol = NULL; |
6773 |
8693 |
6774 { |
8694 { |
6775 identifier_c param_name("IN"); |
8695 identifier_c param_name("IN"); |
6776 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
8696 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
6777 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
8697 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
6778 |
8698 |
6779 /* Get the value from a foo(<param_value>) style call */ |
8699 /* Get the value from a foo(<param_value>) style call */ |
6780 if (IN_param_value == NULL) |
8700 if (IN_param_value == NULL) |
6781 IN_param_value = function_call_param_iterator.next(); |
8701 IN_param_value = function_call_param_iterator.next(); |
6782 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
8702 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
6783 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
8703 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
6784 |
8704 |
6785 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
8705 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
6786 { |
8706 { |
6787 |
8707 |
6788 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
8708 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
6789 return return_type_symbol; |
8709 return return_type_symbol; |
6790 |
8710 |
6791 } |
8711 } |
6792 |
8712 |
6793 ERROR; |
8713 ERROR; |
6794 } |
8714 } |
6795 |
8715 |
6796 }/*function_time_to_int*/ |
8716 }/*function_string_to_int*/ |
6797 break; |
8717 break; |
6798 |
8718 |
6799 /**** |
8719 /**** |
6800 *TIME_TO_DINT |
8720 *STRING_TO_DINT |
6801 */ |
8721 */ |
6802 case function_time_to_dint : |
8722 case function_string_to_dint : |
6803 { |
8723 { |
6804 symbol_c *last_type_symbol = NULL; |
8724 symbol_c *last_type_symbol = NULL; |
6805 |
8725 |
6806 { |
8726 { |
6807 identifier_c param_name("IN"); |
8727 identifier_c param_name("IN"); |
6808 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
8728 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
6809 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
8729 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
6810 |
8730 |
6811 /* Get the value from a foo(<param_value>) style call */ |
8731 /* Get the value from a foo(<param_value>) style call */ |
6812 if (IN_param_value == NULL) |
8732 if (IN_param_value == NULL) |
6813 IN_param_value = function_call_param_iterator.next(); |
8733 IN_param_value = function_call_param_iterator.next(); |
6814 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
8734 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
6815 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
8735 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
6816 |
8736 |
6817 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
8737 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
6818 { |
8738 { |
6819 |
8739 |
6820 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
8740 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
6821 return return_type_symbol; |
8741 return return_type_symbol; |
6822 |
8742 |
6823 } |
8743 } |
6824 |
8744 |
6825 ERROR; |
8745 ERROR; |
6826 } |
8746 } |
6827 |
8747 |
6828 }/*function_time_to_dint*/ |
8748 }/*function_string_to_dint*/ |
6829 break; |
8749 break; |
6830 |
8750 |
6831 /**** |
8751 /**** |
6832 *TIME_TO_LINT |
8752 *STRING_TO_LINT |
6833 */ |
8753 */ |
6834 case function_time_to_lint : |
8754 case function_string_to_lint : |
6835 { |
8755 { |
6836 symbol_c *last_type_symbol = NULL; |
8756 symbol_c *last_type_symbol = NULL; |
6837 |
8757 |
6838 { |
8758 { |
6839 identifier_c param_name("IN"); |
8759 identifier_c param_name("IN"); |
6840 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
8760 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
6841 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
8761 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
6842 |
8762 |
6843 /* Get the value from a foo(<param_value>) style call */ |
8763 /* Get the value from a foo(<param_value>) style call */ |
6844 if (IN_param_value == NULL) |
8764 if (IN_param_value == NULL) |
6845 IN_param_value = function_call_param_iterator.next(); |
8765 IN_param_value = function_call_param_iterator.next(); |
6846 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
8766 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
6847 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
8767 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
6848 |
8768 |
6849 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
8769 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
6850 { |
8770 { |
6851 |
8771 |
6852 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
8772 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
6853 return return_type_symbol; |
8773 return return_type_symbol; |
6854 |
8774 |
6855 } |
8775 } |
6856 |
8776 |
6857 ERROR; |
8777 ERROR; |
6858 } |
8778 } |
6859 |
8779 |
6860 }/*function_time_to_lint*/ |
8780 }/*function_string_to_lint*/ |
6861 break; |
8781 break; |
6862 |
8782 |
6863 /**** |
8783 /**** |
6864 *TIME_TO_USINT |
8784 *STRING_TO_USINT |
6865 */ |
8785 */ |
6866 case function_time_to_usint : |
8786 case function_string_to_usint : |
6867 { |
8787 { |
6868 symbol_c *last_type_symbol = NULL; |
8788 symbol_c *last_type_symbol = NULL; |
6869 |
8789 |
6870 { |
8790 { |
6871 identifier_c param_name("IN"); |
8791 identifier_c param_name("IN"); |
6872 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
8792 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
6873 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
8793 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
6874 |
8794 |
6875 /* Get the value from a foo(<param_value>) style call */ |
8795 /* Get the value from a foo(<param_value>) style call */ |
6876 if (IN_param_value == NULL) |
8796 if (IN_param_value == NULL) |
6877 IN_param_value = function_call_param_iterator.next(); |
8797 IN_param_value = function_call_param_iterator.next(); |
6878 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
8798 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
6879 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
8799 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
6880 |
8800 |
6881 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
8801 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
6882 { |
8802 { |
6883 |
8803 |
6884 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
8804 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
6885 return return_type_symbol; |
8805 return return_type_symbol; |
6886 |
8806 |
6887 } |
8807 } |
6888 |
8808 |
6889 ERROR; |
8809 ERROR; |
6890 } |
8810 } |
6891 |
8811 |
6892 }/*function_time_to_usint*/ |
8812 }/*function_string_to_usint*/ |
6893 break; |
8813 break; |
6894 |
8814 |
6895 /**** |
8815 /**** |
6896 *TIME_TO_UINT |
8816 *STRING_TO_UINT |
6897 */ |
8817 */ |
6898 case function_time_to_uint : |
8818 case function_string_to_uint : |
6899 { |
8819 { |
6900 symbol_c *last_type_symbol = NULL; |
8820 symbol_c *last_type_symbol = NULL; |
6901 |
8821 |
6902 { |
8822 { |
6903 identifier_c param_name("IN"); |
8823 identifier_c param_name("IN"); |
6904 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
8824 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
6905 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
8825 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
6906 |
8826 |
6907 /* Get the value from a foo(<param_value>) style call */ |
8827 /* Get the value from a foo(<param_value>) style call */ |
6908 if (IN_param_value == NULL) |
8828 if (IN_param_value == NULL) |
6909 IN_param_value = function_call_param_iterator.next(); |
8829 IN_param_value = function_call_param_iterator.next(); |
6910 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
8830 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
6911 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
8831 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
6912 |
8832 |
6913 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
8833 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
6914 { |
8834 { |
6915 |
8835 |
6916 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
8836 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
6917 return return_type_symbol; |
8837 return return_type_symbol; |
6918 |
8838 |
6919 } |
8839 } |
6920 |
8840 |
6921 ERROR; |
8841 ERROR; |
6922 } |
8842 } |
6923 |
8843 |
6924 }/*function_time_to_uint*/ |
8844 }/*function_string_to_uint*/ |
6925 break; |
8845 break; |
6926 |
8846 |
6927 /**** |
8847 /**** |
6928 *TIME_TO_UDINT |
8848 *STRING_TO_UDINT |
6929 */ |
8849 */ |
6930 case function_time_to_udint : |
8850 case function_string_to_udint : |
6931 { |
8851 { |
6932 symbol_c *last_type_symbol = NULL; |
8852 symbol_c *last_type_symbol = NULL; |
6933 |
8853 |
6934 { |
8854 { |
6935 identifier_c param_name("IN"); |
8855 identifier_c param_name("IN"); |
6936 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
8856 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
6937 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
8857 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
6938 |
8858 |
6939 /* Get the value from a foo(<param_value>) style call */ |
8859 /* Get the value from a foo(<param_value>) style call */ |
6940 if (IN_param_value == NULL) |
8860 if (IN_param_value == NULL) |
6941 IN_param_value = function_call_param_iterator.next(); |
8861 IN_param_value = function_call_param_iterator.next(); |
6942 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
8862 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
6943 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
8863 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
6944 |
8864 |
6945 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
8865 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
6946 { |
8866 { |
6947 |
8867 |
6948 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
8868 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
6949 return return_type_symbol; |
8869 return return_type_symbol; |
6950 |
8870 |
6951 } |
8871 } |
6952 |
8872 |
6953 ERROR; |
8873 ERROR; |
6954 } |
8874 } |
6955 |
8875 |
6956 }/*function_time_to_udint*/ |
8876 }/*function_string_to_udint*/ |
6957 break; |
8877 break; |
6958 |
8878 |
6959 /**** |
8879 /**** |
6960 *TIME_TO_ULINT |
8880 *STRING_TO_ULINT |
6961 */ |
8881 */ |
6962 case function_time_to_ulint : |
8882 case function_string_to_ulint : |
6963 { |
8883 { |
6964 symbol_c *last_type_symbol = NULL; |
8884 symbol_c *last_type_symbol = NULL; |
6965 |
8885 |
6966 { |
8886 { |
6967 identifier_c param_name("IN"); |
8887 identifier_c param_name("IN"); |
6968 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
8888 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
6969 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
8889 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
6970 |
8890 |
6971 /* Get the value from a foo(<param_value>) style call */ |
8891 /* Get the value from a foo(<param_value>) style call */ |
6972 if (IN_param_value == NULL) |
8892 if (IN_param_value == NULL) |
6973 IN_param_value = function_call_param_iterator.next(); |
8893 IN_param_value = function_call_param_iterator.next(); |
6974 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
8894 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
6975 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
8895 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
6976 |
8896 |
6977 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
8897 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
6978 { |
8898 { |
6979 |
8899 |
6980 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
8900 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
6981 return return_type_symbol; |
8901 return return_type_symbol; |
6982 |
8902 |
6983 } |
8903 } |
6984 |
8904 |
6985 ERROR; |
8905 ERROR; |
6986 } |
8906 } |
6987 |
8907 |
6988 }/*function_time_to_ulint*/ |
8908 }/*function_string_to_ulint*/ |
6989 break; |
8909 break; |
6990 |
8910 |
6991 /**** |
8911 /**** |
6992 *TIME_TO_REAL |
8912 *STRING_TO_REAL |
6993 */ |
8913 */ |
6994 case function_time_to_real : |
8914 case function_string_to_real : |
6995 { |
8915 { |
6996 symbol_c *last_type_symbol = NULL; |
8916 symbol_c *last_type_symbol = NULL; |
6997 |
8917 |
6998 { |
8918 { |
6999 identifier_c param_name("IN"); |
8919 identifier_c param_name("IN"); |
7000 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
8920 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
7001 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
8921 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
7002 |
8922 |
7003 /* Get the value from a foo(<param_value>) style call */ |
8923 /* Get the value from a foo(<param_value>) style call */ |
7004 if (IN_param_value == NULL) |
8924 if (IN_param_value == NULL) |
7005 IN_param_value = function_call_param_iterator.next(); |
8925 IN_param_value = function_call_param_iterator.next(); |
7006 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
8926 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
7007 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
8927 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
7008 |
8928 |
7009 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
8929 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
7010 { |
8930 { |
7011 |
8931 |
7012 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
8932 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
7013 return return_type_symbol; |
8933 return return_type_symbol; |
7014 |
8934 |
7015 } |
8935 } |
7016 |
8936 |
7017 ERROR; |
8937 ERROR; |
7018 } |
8938 } |
7019 |
8939 |
7020 }/*function_time_to_real*/ |
8940 }/*function_string_to_real*/ |
7021 break; |
8941 break; |
7022 |
8942 |
7023 /**** |
8943 /**** |
7024 *TIME_TO_LREAL |
8944 *STRING_TO_LREAL |
7025 */ |
8945 */ |
7026 case function_time_to_lreal : |
8946 case function_string_to_lreal : |
7027 { |
8947 { |
7028 symbol_c *last_type_symbol = NULL; |
8948 symbol_c *last_type_symbol = NULL; |
7029 |
8949 |
7030 { |
8950 { |
7031 identifier_c param_name("IN"); |
8951 identifier_c param_name("IN"); |
7032 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
8952 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
7033 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
8953 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
7034 |
8954 |
7035 /* Get the value from a foo(<param_value>) style call */ |
8955 /* Get the value from a foo(<param_value>) style call */ |
7036 if (IN_param_value == NULL) |
8956 if (IN_param_value == NULL) |
7037 IN_param_value = function_call_param_iterator.next(); |
8957 IN_param_value = function_call_param_iterator.next(); |
7038 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
8958 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
7039 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
8959 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
7040 |
8960 |
7041 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
8961 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
7042 { |
8962 { |
7043 |
8963 |
7044 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
8964 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
7045 return return_type_symbol; |
8965 return return_type_symbol; |
7046 |
8966 |
7047 } |
8967 } |
7048 |
8968 |
7049 ERROR; |
8969 ERROR; |
7050 } |
8970 } |
7051 |
8971 |
7052 }/*function_time_to_lreal*/ |
8972 }/*function_string_to_lreal*/ |
7053 break; |
8973 break; |
7054 |
8974 |
7055 /**** |
8975 /**** |
7056 *TIME_TO_STRING |
8976 *STRING_TO_TIME |
7057 */ |
8977 */ |
7058 case function_time_to_string : |
8978 case function_string_to_time : |
7059 { |
8979 { |
7060 symbol_c *last_type_symbol = NULL; |
8980 symbol_c *last_type_symbol = NULL; |
7061 |
8981 |
7062 { |
8982 { |
7063 identifier_c param_name("IN"); |
8983 identifier_c param_name("IN"); |
7064 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
8984 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
7065 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
8985 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
7066 |
8986 |
7067 /* Get the value from a foo(<param_value>) style call */ |
8987 /* Get the value from a foo(<param_value>) style call */ |
7068 if (IN_param_value == NULL) |
8988 if (IN_param_value == NULL) |
7069 IN_param_value = function_call_param_iterator.next(); |
8989 IN_param_value = function_call_param_iterator.next(); |
7070 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
8990 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
7071 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
8991 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
7072 |
8992 |
7073 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
8993 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
|
8994 { |
|
8995 |
|
8996 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
8997 return return_type_symbol; |
|
8998 |
|
8999 } |
|
9000 |
|
9001 ERROR; |
|
9002 } |
|
9003 |
|
9004 }/*function_string_to_time*/ |
|
9005 break; |
|
9006 |
|
9007 /**** |
|
9008 *STRING_TO_DATE |
|
9009 */ |
|
9010 case function_string_to_date : |
|
9011 { |
|
9012 symbol_c *last_type_symbol = NULL; |
|
9013 |
|
9014 { |
|
9015 identifier_c param_name("IN"); |
|
9016 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9017 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9018 |
|
9019 /* Get the value from a foo(<param_value>) style call */ |
|
9020 if (IN_param_value == NULL) |
|
9021 IN_param_value = function_call_param_iterator.next(); |
|
9022 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9023 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9024 |
|
9025 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
|
9026 { |
|
9027 |
|
9028 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
9029 return return_type_symbol; |
|
9030 |
|
9031 } |
|
9032 |
|
9033 ERROR; |
|
9034 } |
|
9035 |
|
9036 }/*function_string_to_date*/ |
|
9037 break; |
|
9038 |
|
9039 /**** |
|
9040 *STRING_TO_TOD |
|
9041 */ |
|
9042 case function_string_to_tod : |
|
9043 { |
|
9044 symbol_c *last_type_symbol = NULL; |
|
9045 |
|
9046 { |
|
9047 identifier_c param_name("IN"); |
|
9048 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9049 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9050 |
|
9051 /* Get the value from a foo(<param_value>) style call */ |
|
9052 if (IN_param_value == NULL) |
|
9053 IN_param_value = function_call_param_iterator.next(); |
|
9054 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9055 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9056 |
|
9057 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
|
9058 { |
|
9059 |
|
9060 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
9061 return return_type_symbol; |
|
9062 |
|
9063 } |
|
9064 |
|
9065 ERROR; |
|
9066 } |
|
9067 |
|
9068 }/*function_string_to_tod*/ |
|
9069 break; |
|
9070 |
|
9071 /**** |
|
9072 *STRING_TO_DT |
|
9073 */ |
|
9074 case function_string_to_dt : |
|
9075 { |
|
9076 symbol_c *last_type_symbol = NULL; |
|
9077 |
|
9078 { |
|
9079 identifier_c param_name("IN"); |
|
9080 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9081 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9082 |
|
9083 /* Get the value from a foo(<param_value>) style call */ |
|
9084 if (IN_param_value == NULL) |
|
9085 IN_param_value = function_call_param_iterator.next(); |
|
9086 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9087 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9088 |
|
9089 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
|
9090 { |
|
9091 |
|
9092 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
9093 return return_type_symbol; |
|
9094 |
|
9095 } |
|
9096 |
|
9097 ERROR; |
|
9098 } |
|
9099 |
|
9100 }/*function_string_to_dt*/ |
|
9101 break; |
|
9102 |
|
9103 /**** |
|
9104 *STRING_TO_BYTE |
|
9105 */ |
|
9106 case function_string_to_byte : |
|
9107 { |
|
9108 symbol_c *last_type_symbol = NULL; |
|
9109 |
|
9110 { |
|
9111 identifier_c param_name("IN"); |
|
9112 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9113 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9114 |
|
9115 /* Get the value from a foo(<param_value>) style call */ |
|
9116 if (IN_param_value == NULL) |
|
9117 IN_param_value = function_call_param_iterator.next(); |
|
9118 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9119 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9120 |
|
9121 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
|
9122 { |
|
9123 |
|
9124 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
9125 return return_type_symbol; |
|
9126 |
|
9127 } |
|
9128 |
|
9129 ERROR; |
|
9130 } |
|
9131 |
|
9132 }/*function_string_to_byte*/ |
|
9133 break; |
|
9134 |
|
9135 /**** |
|
9136 *STRING_TO_WORD |
|
9137 */ |
|
9138 case function_string_to_word : |
|
9139 { |
|
9140 symbol_c *last_type_symbol = NULL; |
|
9141 |
|
9142 { |
|
9143 identifier_c param_name("IN"); |
|
9144 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9145 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9146 |
|
9147 /* Get the value from a foo(<param_value>) style call */ |
|
9148 if (IN_param_value == NULL) |
|
9149 IN_param_value = function_call_param_iterator.next(); |
|
9150 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9151 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9152 |
|
9153 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
|
9154 { |
|
9155 |
|
9156 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
9157 return return_type_symbol; |
|
9158 |
|
9159 } |
|
9160 |
|
9161 ERROR; |
|
9162 } |
|
9163 |
|
9164 }/*function_string_to_word*/ |
|
9165 break; |
|
9166 |
|
9167 /**** |
|
9168 *STRING_TO_DWORD |
|
9169 */ |
|
9170 case function_string_to_dword : |
|
9171 { |
|
9172 symbol_c *last_type_symbol = NULL; |
|
9173 |
|
9174 { |
|
9175 identifier_c param_name("IN"); |
|
9176 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9177 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9178 |
|
9179 /* Get the value from a foo(<param_value>) style call */ |
|
9180 if (IN_param_value == NULL) |
|
9181 IN_param_value = function_call_param_iterator.next(); |
|
9182 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9183 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9184 |
|
9185 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
|
9186 { |
|
9187 |
|
9188 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
9189 return return_type_symbol; |
|
9190 |
|
9191 } |
|
9192 |
|
9193 ERROR; |
|
9194 } |
|
9195 |
|
9196 }/*function_string_to_dword*/ |
|
9197 break; |
|
9198 |
|
9199 /**** |
|
9200 *STRING_TO_LWORD |
|
9201 */ |
|
9202 case function_string_to_lword : |
|
9203 { |
|
9204 symbol_c *last_type_symbol = NULL; |
|
9205 |
|
9206 { |
|
9207 identifier_c param_name("IN"); |
|
9208 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9209 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9210 |
|
9211 /* Get the value from a foo(<param_value>) style call */ |
|
9212 if (IN_param_value == NULL) |
|
9213 IN_param_value = function_call_param_iterator.next(); |
|
9214 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9215 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9216 |
|
9217 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
|
9218 { |
|
9219 |
|
9220 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
9221 return return_type_symbol; |
|
9222 |
|
9223 } |
|
9224 |
|
9225 ERROR; |
|
9226 } |
|
9227 |
|
9228 }/*function_string_to_lword*/ |
|
9229 break; |
|
9230 |
|
9231 /**** |
|
9232 *BYTE_TO_BOOL |
|
9233 */ |
|
9234 case function_byte_to_bool : |
|
9235 { |
|
9236 symbol_c *last_type_symbol = NULL; |
|
9237 |
|
9238 { |
|
9239 identifier_c param_name("IN"); |
|
9240 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9241 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9242 |
|
9243 /* Get the value from a foo(<param_value>) style call */ |
|
9244 if (IN_param_value == NULL) |
|
9245 IN_param_value = function_call_param_iterator.next(); |
|
9246 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9247 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9248 |
|
9249 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9250 { |
|
9251 |
|
9252 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
9253 return return_type_symbol; |
|
9254 |
|
9255 } |
|
9256 |
|
9257 ERROR; |
|
9258 } |
|
9259 |
|
9260 }/*function_byte_to_bool*/ |
|
9261 break; |
|
9262 |
|
9263 /**** |
|
9264 *BYTE_TO_SINT |
|
9265 */ |
|
9266 case function_byte_to_sint : |
|
9267 { |
|
9268 symbol_c *last_type_symbol = NULL; |
|
9269 |
|
9270 { |
|
9271 identifier_c param_name("IN"); |
|
9272 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9273 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9274 |
|
9275 /* Get the value from a foo(<param_value>) style call */ |
|
9276 if (IN_param_value == NULL) |
|
9277 IN_param_value = function_call_param_iterator.next(); |
|
9278 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9279 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9280 |
|
9281 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9282 { |
|
9283 |
|
9284 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
9285 return return_type_symbol; |
|
9286 |
|
9287 } |
|
9288 |
|
9289 ERROR; |
|
9290 } |
|
9291 |
|
9292 }/*function_byte_to_sint*/ |
|
9293 break; |
|
9294 |
|
9295 /**** |
|
9296 *BYTE_TO_INT |
|
9297 */ |
|
9298 case function_byte_to_int : |
|
9299 { |
|
9300 symbol_c *last_type_symbol = NULL; |
|
9301 |
|
9302 { |
|
9303 identifier_c param_name("IN"); |
|
9304 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9305 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9306 |
|
9307 /* Get the value from a foo(<param_value>) style call */ |
|
9308 if (IN_param_value == NULL) |
|
9309 IN_param_value = function_call_param_iterator.next(); |
|
9310 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9311 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9312 |
|
9313 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9314 { |
|
9315 |
|
9316 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
9317 return return_type_symbol; |
|
9318 |
|
9319 } |
|
9320 |
|
9321 ERROR; |
|
9322 } |
|
9323 |
|
9324 }/*function_byte_to_int*/ |
|
9325 break; |
|
9326 |
|
9327 /**** |
|
9328 *BYTE_TO_DINT |
|
9329 */ |
|
9330 case function_byte_to_dint : |
|
9331 { |
|
9332 symbol_c *last_type_symbol = NULL; |
|
9333 |
|
9334 { |
|
9335 identifier_c param_name("IN"); |
|
9336 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9337 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9338 |
|
9339 /* Get the value from a foo(<param_value>) style call */ |
|
9340 if (IN_param_value == NULL) |
|
9341 IN_param_value = function_call_param_iterator.next(); |
|
9342 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9343 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9344 |
|
9345 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9346 { |
|
9347 |
|
9348 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
9349 return return_type_symbol; |
|
9350 |
|
9351 } |
|
9352 |
|
9353 ERROR; |
|
9354 } |
|
9355 |
|
9356 }/*function_byte_to_dint*/ |
|
9357 break; |
|
9358 |
|
9359 /**** |
|
9360 *BYTE_TO_LINT |
|
9361 */ |
|
9362 case function_byte_to_lint : |
|
9363 { |
|
9364 symbol_c *last_type_symbol = NULL; |
|
9365 |
|
9366 { |
|
9367 identifier_c param_name("IN"); |
|
9368 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9369 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9370 |
|
9371 /* Get the value from a foo(<param_value>) style call */ |
|
9372 if (IN_param_value == NULL) |
|
9373 IN_param_value = function_call_param_iterator.next(); |
|
9374 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9375 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9376 |
|
9377 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9378 { |
|
9379 |
|
9380 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
9381 return return_type_symbol; |
|
9382 |
|
9383 } |
|
9384 |
|
9385 ERROR; |
|
9386 } |
|
9387 |
|
9388 }/*function_byte_to_lint*/ |
|
9389 break; |
|
9390 |
|
9391 /**** |
|
9392 *BYTE_TO_USINT |
|
9393 */ |
|
9394 case function_byte_to_usint : |
|
9395 { |
|
9396 symbol_c *last_type_symbol = NULL; |
|
9397 |
|
9398 { |
|
9399 identifier_c param_name("IN"); |
|
9400 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9401 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9402 |
|
9403 /* Get the value from a foo(<param_value>) style call */ |
|
9404 if (IN_param_value == NULL) |
|
9405 IN_param_value = function_call_param_iterator.next(); |
|
9406 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9407 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9408 |
|
9409 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9410 { |
|
9411 |
|
9412 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
9413 return return_type_symbol; |
|
9414 |
|
9415 } |
|
9416 |
|
9417 ERROR; |
|
9418 } |
|
9419 |
|
9420 }/*function_byte_to_usint*/ |
|
9421 break; |
|
9422 |
|
9423 /**** |
|
9424 *BYTE_TO_UINT |
|
9425 */ |
|
9426 case function_byte_to_uint : |
|
9427 { |
|
9428 symbol_c *last_type_symbol = NULL; |
|
9429 |
|
9430 { |
|
9431 identifier_c param_name("IN"); |
|
9432 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9433 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9434 |
|
9435 /* Get the value from a foo(<param_value>) style call */ |
|
9436 if (IN_param_value == NULL) |
|
9437 IN_param_value = function_call_param_iterator.next(); |
|
9438 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9439 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9440 |
|
9441 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9442 { |
|
9443 |
|
9444 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
9445 return return_type_symbol; |
|
9446 |
|
9447 } |
|
9448 |
|
9449 ERROR; |
|
9450 } |
|
9451 |
|
9452 }/*function_byte_to_uint*/ |
|
9453 break; |
|
9454 |
|
9455 /**** |
|
9456 *BYTE_TO_UDINT |
|
9457 */ |
|
9458 case function_byte_to_udint : |
|
9459 { |
|
9460 symbol_c *last_type_symbol = NULL; |
|
9461 |
|
9462 { |
|
9463 identifier_c param_name("IN"); |
|
9464 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9465 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9466 |
|
9467 /* Get the value from a foo(<param_value>) style call */ |
|
9468 if (IN_param_value == NULL) |
|
9469 IN_param_value = function_call_param_iterator.next(); |
|
9470 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9471 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9472 |
|
9473 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9474 { |
|
9475 |
|
9476 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
9477 return return_type_symbol; |
|
9478 |
|
9479 } |
|
9480 |
|
9481 ERROR; |
|
9482 } |
|
9483 |
|
9484 }/*function_byte_to_udint*/ |
|
9485 break; |
|
9486 |
|
9487 /**** |
|
9488 *BYTE_TO_ULINT |
|
9489 */ |
|
9490 case function_byte_to_ulint : |
|
9491 { |
|
9492 symbol_c *last_type_symbol = NULL; |
|
9493 |
|
9494 { |
|
9495 identifier_c param_name("IN"); |
|
9496 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9497 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9498 |
|
9499 /* Get the value from a foo(<param_value>) style call */ |
|
9500 if (IN_param_value == NULL) |
|
9501 IN_param_value = function_call_param_iterator.next(); |
|
9502 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9503 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9504 |
|
9505 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9506 { |
|
9507 |
|
9508 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
9509 return return_type_symbol; |
|
9510 |
|
9511 } |
|
9512 |
|
9513 ERROR; |
|
9514 } |
|
9515 |
|
9516 }/*function_byte_to_ulint*/ |
|
9517 break; |
|
9518 |
|
9519 /**** |
|
9520 *BYTE_TO_REAL |
|
9521 */ |
|
9522 case function_byte_to_real : |
|
9523 { |
|
9524 symbol_c *last_type_symbol = NULL; |
|
9525 |
|
9526 { |
|
9527 identifier_c param_name("IN"); |
|
9528 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9529 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9530 |
|
9531 /* Get the value from a foo(<param_value>) style call */ |
|
9532 if (IN_param_value == NULL) |
|
9533 IN_param_value = function_call_param_iterator.next(); |
|
9534 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9535 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9536 |
|
9537 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9538 { |
|
9539 |
|
9540 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
9541 return return_type_symbol; |
|
9542 |
|
9543 } |
|
9544 |
|
9545 ERROR; |
|
9546 } |
|
9547 |
|
9548 }/*function_byte_to_real*/ |
|
9549 break; |
|
9550 |
|
9551 /**** |
|
9552 *BYTE_TO_LREAL |
|
9553 */ |
|
9554 case function_byte_to_lreal : |
|
9555 { |
|
9556 symbol_c *last_type_symbol = NULL; |
|
9557 |
|
9558 { |
|
9559 identifier_c param_name("IN"); |
|
9560 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9561 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9562 |
|
9563 /* Get the value from a foo(<param_value>) style call */ |
|
9564 if (IN_param_value == NULL) |
|
9565 IN_param_value = function_call_param_iterator.next(); |
|
9566 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9567 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9568 |
|
9569 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9570 { |
|
9571 |
|
9572 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
9573 return return_type_symbol; |
|
9574 |
|
9575 } |
|
9576 |
|
9577 ERROR; |
|
9578 } |
|
9579 |
|
9580 }/*function_byte_to_lreal*/ |
|
9581 break; |
|
9582 |
|
9583 /**** |
|
9584 *BYTE_TO_TIME |
|
9585 */ |
|
9586 case function_byte_to_time : |
|
9587 { |
|
9588 symbol_c *last_type_symbol = NULL; |
|
9589 |
|
9590 { |
|
9591 identifier_c param_name("IN"); |
|
9592 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9593 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9594 |
|
9595 /* Get the value from a foo(<param_value>) style call */ |
|
9596 if (IN_param_value == NULL) |
|
9597 IN_param_value = function_call_param_iterator.next(); |
|
9598 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9599 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9600 |
|
9601 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9602 { |
|
9603 |
|
9604 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
9605 return return_type_symbol; |
|
9606 |
|
9607 } |
|
9608 |
|
9609 ERROR; |
|
9610 } |
|
9611 |
|
9612 }/*function_byte_to_time*/ |
|
9613 break; |
|
9614 |
|
9615 /**** |
|
9616 *BYTE_TO_DATE |
|
9617 */ |
|
9618 case function_byte_to_date : |
|
9619 { |
|
9620 symbol_c *last_type_symbol = NULL; |
|
9621 |
|
9622 { |
|
9623 identifier_c param_name("IN"); |
|
9624 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9625 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9626 |
|
9627 /* Get the value from a foo(<param_value>) style call */ |
|
9628 if (IN_param_value == NULL) |
|
9629 IN_param_value = function_call_param_iterator.next(); |
|
9630 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9631 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9632 |
|
9633 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9634 { |
|
9635 |
|
9636 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
9637 return return_type_symbol; |
|
9638 |
|
9639 } |
|
9640 |
|
9641 ERROR; |
|
9642 } |
|
9643 |
|
9644 }/*function_byte_to_date*/ |
|
9645 break; |
|
9646 |
|
9647 /**** |
|
9648 *BYTE_TO_TOD |
|
9649 */ |
|
9650 case function_byte_to_tod : |
|
9651 { |
|
9652 symbol_c *last_type_symbol = NULL; |
|
9653 |
|
9654 { |
|
9655 identifier_c param_name("IN"); |
|
9656 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9657 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9658 |
|
9659 /* Get the value from a foo(<param_value>) style call */ |
|
9660 if (IN_param_value == NULL) |
|
9661 IN_param_value = function_call_param_iterator.next(); |
|
9662 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9663 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9664 |
|
9665 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9666 { |
|
9667 |
|
9668 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
9669 return return_type_symbol; |
|
9670 |
|
9671 } |
|
9672 |
|
9673 ERROR; |
|
9674 } |
|
9675 |
|
9676 }/*function_byte_to_tod*/ |
|
9677 break; |
|
9678 |
|
9679 /**** |
|
9680 *BYTE_TO_DT |
|
9681 */ |
|
9682 case function_byte_to_dt : |
|
9683 { |
|
9684 symbol_c *last_type_symbol = NULL; |
|
9685 |
|
9686 { |
|
9687 identifier_c param_name("IN"); |
|
9688 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9689 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9690 |
|
9691 /* Get the value from a foo(<param_value>) style call */ |
|
9692 if (IN_param_value == NULL) |
|
9693 IN_param_value = function_call_param_iterator.next(); |
|
9694 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9695 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9696 |
|
9697 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9698 { |
|
9699 |
|
9700 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
9701 return return_type_symbol; |
|
9702 |
|
9703 } |
|
9704 |
|
9705 ERROR; |
|
9706 } |
|
9707 |
|
9708 }/*function_byte_to_dt*/ |
|
9709 break; |
|
9710 |
|
9711 /**** |
|
9712 *BYTE_TO_STRING |
|
9713 */ |
|
9714 case function_byte_to_string : |
|
9715 { |
|
9716 symbol_c *last_type_symbol = NULL; |
|
9717 |
|
9718 { |
|
9719 identifier_c param_name("IN"); |
|
9720 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9721 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9722 |
|
9723 /* Get the value from a foo(<param_value>) style call */ |
|
9724 if (IN_param_value == NULL) |
|
9725 IN_param_value = function_call_param_iterator.next(); |
|
9726 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9727 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9728 |
|
9729 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
7074 { |
9730 { |
7075 |
9731 |
7076 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
9732 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
7077 return return_type_symbol; |
9733 return return_type_symbol; |
7078 |
9734 |
7079 } |
9735 } |
7080 |
9736 |
7081 ERROR; |
9737 ERROR; |
7082 } |
9738 } |
7083 |
9739 |
7084 }/*function_time_to_string*/ |
9740 }/*function_byte_to_string*/ |
7085 break; |
9741 break; |
7086 |
9742 |
7087 /**** |
9743 /**** |
7088 *TIME_TO_BYTE |
9744 *BYTE_TO_WORD |
7089 */ |
9745 */ |
7090 case function_time_to_byte : |
9746 case function_byte_to_word : |
7091 { |
9747 { |
7092 symbol_c *last_type_symbol = NULL; |
9748 symbol_c *last_type_symbol = NULL; |
7093 |
9749 |
7094 { |
9750 { |
7095 identifier_c param_name("IN"); |
9751 identifier_c param_name("IN"); |
7096 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
9752 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
7097 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
9753 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
7098 |
9754 |
7099 /* Get the value from a foo(<param_value>) style call */ |
9755 /* Get the value from a foo(<param_value>) style call */ |
7100 if (IN_param_value == NULL) |
9756 if (IN_param_value == NULL) |
7101 IN_param_value = function_call_param_iterator.next(); |
9757 IN_param_value = function_call_param_iterator.next(); |
7102 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
9758 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
7103 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
9759 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
7104 |
9760 |
7105 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
9761 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9762 { |
|
9763 |
|
9764 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
9765 return return_type_symbol; |
|
9766 |
|
9767 } |
|
9768 |
|
9769 ERROR; |
|
9770 } |
|
9771 |
|
9772 }/*function_byte_to_word*/ |
|
9773 break; |
|
9774 |
|
9775 /**** |
|
9776 *BYTE_TO_DWORD |
|
9777 */ |
|
9778 case function_byte_to_dword : |
|
9779 { |
|
9780 symbol_c *last_type_symbol = NULL; |
|
9781 |
|
9782 { |
|
9783 identifier_c param_name("IN"); |
|
9784 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9785 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9786 |
|
9787 /* Get the value from a foo(<param_value>) style call */ |
|
9788 if (IN_param_value == NULL) |
|
9789 IN_param_value = function_call_param_iterator.next(); |
|
9790 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9791 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9792 |
|
9793 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9794 { |
|
9795 |
|
9796 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
9797 return return_type_symbol; |
|
9798 |
|
9799 } |
|
9800 |
|
9801 ERROR; |
|
9802 } |
|
9803 |
|
9804 }/*function_byte_to_dword*/ |
|
9805 break; |
|
9806 |
|
9807 /**** |
|
9808 *BYTE_TO_LWORD |
|
9809 */ |
|
9810 case function_byte_to_lword : |
|
9811 { |
|
9812 symbol_c *last_type_symbol = NULL; |
|
9813 |
|
9814 { |
|
9815 identifier_c param_name("IN"); |
|
9816 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9817 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9818 |
|
9819 /* Get the value from a foo(<param_value>) style call */ |
|
9820 if (IN_param_value == NULL) |
|
9821 IN_param_value = function_call_param_iterator.next(); |
|
9822 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9823 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9824 |
|
9825 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
9826 { |
|
9827 |
|
9828 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
9829 return return_type_symbol; |
|
9830 |
|
9831 } |
|
9832 |
|
9833 ERROR; |
|
9834 } |
|
9835 |
|
9836 }/*function_byte_to_lword*/ |
|
9837 break; |
|
9838 |
|
9839 /**** |
|
9840 *WORD_TO_BOOL |
|
9841 */ |
|
9842 case function_word_to_bool : |
|
9843 { |
|
9844 symbol_c *last_type_symbol = NULL; |
|
9845 |
|
9846 { |
|
9847 identifier_c param_name("IN"); |
|
9848 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9849 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9850 |
|
9851 /* Get the value from a foo(<param_value>) style call */ |
|
9852 if (IN_param_value == NULL) |
|
9853 IN_param_value = function_call_param_iterator.next(); |
|
9854 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9855 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9856 |
|
9857 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
9858 { |
|
9859 |
|
9860 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
9861 return return_type_symbol; |
|
9862 |
|
9863 } |
|
9864 |
|
9865 ERROR; |
|
9866 } |
|
9867 |
|
9868 }/*function_word_to_bool*/ |
|
9869 break; |
|
9870 |
|
9871 /**** |
|
9872 *WORD_TO_SINT |
|
9873 */ |
|
9874 case function_word_to_sint : |
|
9875 { |
|
9876 symbol_c *last_type_symbol = NULL; |
|
9877 |
|
9878 { |
|
9879 identifier_c param_name("IN"); |
|
9880 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9881 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9882 |
|
9883 /* Get the value from a foo(<param_value>) style call */ |
|
9884 if (IN_param_value == NULL) |
|
9885 IN_param_value = function_call_param_iterator.next(); |
|
9886 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9887 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9888 |
|
9889 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
9890 { |
|
9891 |
|
9892 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
9893 return return_type_symbol; |
|
9894 |
|
9895 } |
|
9896 |
|
9897 ERROR; |
|
9898 } |
|
9899 |
|
9900 }/*function_word_to_sint*/ |
|
9901 break; |
|
9902 |
|
9903 /**** |
|
9904 *WORD_TO_INT |
|
9905 */ |
|
9906 case function_word_to_int : |
|
9907 { |
|
9908 symbol_c *last_type_symbol = NULL; |
|
9909 |
|
9910 { |
|
9911 identifier_c param_name("IN"); |
|
9912 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9913 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9914 |
|
9915 /* Get the value from a foo(<param_value>) style call */ |
|
9916 if (IN_param_value == NULL) |
|
9917 IN_param_value = function_call_param_iterator.next(); |
|
9918 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9919 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9920 |
|
9921 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
9922 { |
|
9923 |
|
9924 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
9925 return return_type_symbol; |
|
9926 |
|
9927 } |
|
9928 |
|
9929 ERROR; |
|
9930 } |
|
9931 |
|
9932 }/*function_word_to_int*/ |
|
9933 break; |
|
9934 |
|
9935 /**** |
|
9936 *WORD_TO_DINT |
|
9937 */ |
|
9938 case function_word_to_dint : |
|
9939 { |
|
9940 symbol_c *last_type_symbol = NULL; |
|
9941 |
|
9942 { |
|
9943 identifier_c param_name("IN"); |
|
9944 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9945 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9946 |
|
9947 /* Get the value from a foo(<param_value>) style call */ |
|
9948 if (IN_param_value == NULL) |
|
9949 IN_param_value = function_call_param_iterator.next(); |
|
9950 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9951 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9952 |
|
9953 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
9954 { |
|
9955 |
|
9956 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
9957 return return_type_symbol; |
|
9958 |
|
9959 } |
|
9960 |
|
9961 ERROR; |
|
9962 } |
|
9963 |
|
9964 }/*function_word_to_dint*/ |
|
9965 break; |
|
9966 |
|
9967 /**** |
|
9968 *WORD_TO_LINT |
|
9969 */ |
|
9970 case function_word_to_lint : |
|
9971 { |
|
9972 symbol_c *last_type_symbol = NULL; |
|
9973 |
|
9974 { |
|
9975 identifier_c param_name("IN"); |
|
9976 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9977 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9978 |
|
9979 /* Get the value from a foo(<param_value>) style call */ |
|
9980 if (IN_param_value == NULL) |
|
9981 IN_param_value = function_call_param_iterator.next(); |
|
9982 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9983 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9984 |
|
9985 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
9986 { |
|
9987 |
|
9988 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
9989 return return_type_symbol; |
|
9990 |
|
9991 } |
|
9992 |
|
9993 ERROR; |
|
9994 } |
|
9995 |
|
9996 }/*function_word_to_lint*/ |
|
9997 break; |
|
9998 |
|
9999 /**** |
|
10000 *WORD_TO_USINT |
|
10001 */ |
|
10002 case function_word_to_usint : |
|
10003 { |
|
10004 symbol_c *last_type_symbol = NULL; |
|
10005 |
|
10006 { |
|
10007 identifier_c param_name("IN"); |
|
10008 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10009 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10010 |
|
10011 /* Get the value from a foo(<param_value>) style call */ |
|
10012 if (IN_param_value == NULL) |
|
10013 IN_param_value = function_call_param_iterator.next(); |
|
10014 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10015 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10016 |
|
10017 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
10018 { |
|
10019 |
|
10020 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
10021 return return_type_symbol; |
|
10022 |
|
10023 } |
|
10024 |
|
10025 ERROR; |
|
10026 } |
|
10027 |
|
10028 }/*function_word_to_usint*/ |
|
10029 break; |
|
10030 |
|
10031 /**** |
|
10032 *WORD_TO_UINT |
|
10033 */ |
|
10034 case function_word_to_uint : |
|
10035 { |
|
10036 symbol_c *last_type_symbol = NULL; |
|
10037 |
|
10038 { |
|
10039 identifier_c param_name("IN"); |
|
10040 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10041 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10042 |
|
10043 /* Get the value from a foo(<param_value>) style call */ |
|
10044 if (IN_param_value == NULL) |
|
10045 IN_param_value = function_call_param_iterator.next(); |
|
10046 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10047 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10048 |
|
10049 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
10050 { |
|
10051 |
|
10052 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
10053 return return_type_symbol; |
|
10054 |
|
10055 } |
|
10056 |
|
10057 ERROR; |
|
10058 } |
|
10059 |
|
10060 }/*function_word_to_uint*/ |
|
10061 break; |
|
10062 |
|
10063 /**** |
|
10064 *WORD_TO_UDINT |
|
10065 */ |
|
10066 case function_word_to_udint : |
|
10067 { |
|
10068 symbol_c *last_type_symbol = NULL; |
|
10069 |
|
10070 { |
|
10071 identifier_c param_name("IN"); |
|
10072 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10073 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10074 |
|
10075 /* Get the value from a foo(<param_value>) style call */ |
|
10076 if (IN_param_value == NULL) |
|
10077 IN_param_value = function_call_param_iterator.next(); |
|
10078 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10079 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10080 |
|
10081 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
10082 { |
|
10083 |
|
10084 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
10085 return return_type_symbol; |
|
10086 |
|
10087 } |
|
10088 |
|
10089 ERROR; |
|
10090 } |
|
10091 |
|
10092 }/*function_word_to_udint*/ |
|
10093 break; |
|
10094 |
|
10095 /**** |
|
10096 *WORD_TO_ULINT |
|
10097 */ |
|
10098 case function_word_to_ulint : |
|
10099 { |
|
10100 symbol_c *last_type_symbol = NULL; |
|
10101 |
|
10102 { |
|
10103 identifier_c param_name("IN"); |
|
10104 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10105 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10106 |
|
10107 /* Get the value from a foo(<param_value>) style call */ |
|
10108 if (IN_param_value == NULL) |
|
10109 IN_param_value = function_call_param_iterator.next(); |
|
10110 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10111 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10112 |
|
10113 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
10114 { |
|
10115 |
|
10116 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
10117 return return_type_symbol; |
|
10118 |
|
10119 } |
|
10120 |
|
10121 ERROR; |
|
10122 } |
|
10123 |
|
10124 }/*function_word_to_ulint*/ |
|
10125 break; |
|
10126 |
|
10127 /**** |
|
10128 *WORD_TO_REAL |
|
10129 */ |
|
10130 case function_word_to_real : |
|
10131 { |
|
10132 symbol_c *last_type_symbol = NULL; |
|
10133 |
|
10134 { |
|
10135 identifier_c param_name("IN"); |
|
10136 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10137 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10138 |
|
10139 /* Get the value from a foo(<param_value>) style call */ |
|
10140 if (IN_param_value == NULL) |
|
10141 IN_param_value = function_call_param_iterator.next(); |
|
10142 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10143 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10144 |
|
10145 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
10146 { |
|
10147 |
|
10148 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
10149 return return_type_symbol; |
|
10150 |
|
10151 } |
|
10152 |
|
10153 ERROR; |
|
10154 } |
|
10155 |
|
10156 }/*function_word_to_real*/ |
|
10157 break; |
|
10158 |
|
10159 /**** |
|
10160 *WORD_TO_LREAL |
|
10161 */ |
|
10162 case function_word_to_lreal : |
|
10163 { |
|
10164 symbol_c *last_type_symbol = NULL; |
|
10165 |
|
10166 { |
|
10167 identifier_c param_name("IN"); |
|
10168 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10169 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10170 |
|
10171 /* Get the value from a foo(<param_value>) style call */ |
|
10172 if (IN_param_value == NULL) |
|
10173 IN_param_value = function_call_param_iterator.next(); |
|
10174 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10175 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10176 |
|
10177 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
10178 { |
|
10179 |
|
10180 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
10181 return return_type_symbol; |
|
10182 |
|
10183 } |
|
10184 |
|
10185 ERROR; |
|
10186 } |
|
10187 |
|
10188 }/*function_word_to_lreal*/ |
|
10189 break; |
|
10190 |
|
10191 /**** |
|
10192 *WORD_TO_TIME |
|
10193 */ |
|
10194 case function_word_to_time : |
|
10195 { |
|
10196 symbol_c *last_type_symbol = NULL; |
|
10197 |
|
10198 { |
|
10199 identifier_c param_name("IN"); |
|
10200 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10201 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10202 |
|
10203 /* Get the value from a foo(<param_value>) style call */ |
|
10204 if (IN_param_value == NULL) |
|
10205 IN_param_value = function_call_param_iterator.next(); |
|
10206 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10207 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10208 |
|
10209 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
10210 { |
|
10211 |
|
10212 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
10213 return return_type_symbol; |
|
10214 |
|
10215 } |
|
10216 |
|
10217 ERROR; |
|
10218 } |
|
10219 |
|
10220 }/*function_word_to_time*/ |
|
10221 break; |
|
10222 |
|
10223 /**** |
|
10224 *WORD_TO_DATE |
|
10225 */ |
|
10226 case function_word_to_date : |
|
10227 { |
|
10228 symbol_c *last_type_symbol = NULL; |
|
10229 |
|
10230 { |
|
10231 identifier_c param_name("IN"); |
|
10232 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10233 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10234 |
|
10235 /* Get the value from a foo(<param_value>) style call */ |
|
10236 if (IN_param_value == NULL) |
|
10237 IN_param_value = function_call_param_iterator.next(); |
|
10238 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10239 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10240 |
|
10241 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
10242 { |
|
10243 |
|
10244 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
10245 return return_type_symbol; |
|
10246 |
|
10247 } |
|
10248 |
|
10249 ERROR; |
|
10250 } |
|
10251 |
|
10252 }/*function_word_to_date*/ |
|
10253 break; |
|
10254 |
|
10255 /**** |
|
10256 *WORD_TO_TOD |
|
10257 */ |
|
10258 case function_word_to_tod : |
|
10259 { |
|
10260 symbol_c *last_type_symbol = NULL; |
|
10261 |
|
10262 { |
|
10263 identifier_c param_name("IN"); |
|
10264 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10265 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10266 |
|
10267 /* Get the value from a foo(<param_value>) style call */ |
|
10268 if (IN_param_value == NULL) |
|
10269 IN_param_value = function_call_param_iterator.next(); |
|
10270 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10271 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10272 |
|
10273 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
10274 { |
|
10275 |
|
10276 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
10277 return return_type_symbol; |
|
10278 |
|
10279 } |
|
10280 |
|
10281 ERROR; |
|
10282 } |
|
10283 |
|
10284 }/*function_word_to_tod*/ |
|
10285 break; |
|
10286 |
|
10287 /**** |
|
10288 *WORD_TO_DT |
|
10289 */ |
|
10290 case function_word_to_dt : |
|
10291 { |
|
10292 symbol_c *last_type_symbol = NULL; |
|
10293 |
|
10294 { |
|
10295 identifier_c param_name("IN"); |
|
10296 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10297 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10298 |
|
10299 /* Get the value from a foo(<param_value>) style call */ |
|
10300 if (IN_param_value == NULL) |
|
10301 IN_param_value = function_call_param_iterator.next(); |
|
10302 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10303 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10304 |
|
10305 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
10306 { |
|
10307 |
|
10308 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
10309 return return_type_symbol; |
|
10310 |
|
10311 } |
|
10312 |
|
10313 ERROR; |
|
10314 } |
|
10315 |
|
10316 }/*function_word_to_dt*/ |
|
10317 break; |
|
10318 |
|
10319 /**** |
|
10320 *WORD_TO_STRING |
|
10321 */ |
|
10322 case function_word_to_string : |
|
10323 { |
|
10324 symbol_c *last_type_symbol = NULL; |
|
10325 |
|
10326 { |
|
10327 identifier_c param_name("IN"); |
|
10328 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10329 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10330 |
|
10331 /* Get the value from a foo(<param_value>) style call */ |
|
10332 if (IN_param_value == NULL) |
|
10333 IN_param_value = function_call_param_iterator.next(); |
|
10334 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10335 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10336 |
|
10337 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
10338 { |
|
10339 |
|
10340 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
10341 return return_type_symbol; |
|
10342 |
|
10343 } |
|
10344 |
|
10345 ERROR; |
|
10346 } |
|
10347 |
|
10348 }/*function_word_to_string*/ |
|
10349 break; |
|
10350 |
|
10351 /**** |
|
10352 *WORD_TO_BYTE |
|
10353 */ |
|
10354 case function_word_to_byte : |
|
10355 { |
|
10356 symbol_c *last_type_symbol = NULL; |
|
10357 |
|
10358 { |
|
10359 identifier_c param_name("IN"); |
|
10360 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10361 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10362 |
|
10363 /* Get the value from a foo(<param_value>) style call */ |
|
10364 if (IN_param_value == NULL) |
|
10365 IN_param_value = function_call_param_iterator.next(); |
|
10366 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10367 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10368 |
|
10369 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
7106 { |
10370 { |
7107 |
10371 |
7108 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
10372 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
7109 return return_type_symbol; |
10373 return return_type_symbol; |
7110 |
10374 |
7111 } |
10375 } |
7112 |
10376 |
7113 ERROR; |
10377 ERROR; |
7114 } |
10378 } |
7115 |
10379 |
7116 }/*function_time_to_byte*/ |
10380 }/*function_word_to_byte*/ |
7117 break; |
10381 break; |
7118 |
10382 |
7119 /**** |
10383 /**** |
7120 *TIME_TO_WORD |
10384 *WORD_TO_DWORD |
7121 */ |
10385 */ |
7122 case function_time_to_word : |
10386 case function_word_to_dword : |
7123 { |
10387 { |
7124 symbol_c *last_type_symbol = NULL; |
10388 symbol_c *last_type_symbol = NULL; |
7125 |
10389 |
7126 { |
10390 { |
7127 identifier_c param_name("IN"); |
10391 identifier_c param_name("IN"); |
7128 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
10392 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
7129 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
10393 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
7130 |
10394 |
7131 /* Get the value from a foo(<param_value>) style call */ |
10395 /* Get the value from a foo(<param_value>) style call */ |
7132 if (IN_param_value == NULL) |
10396 if (IN_param_value == NULL) |
7133 IN_param_value = function_call_param_iterator.next(); |
10397 IN_param_value = function_call_param_iterator.next(); |
7134 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
10398 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
7135 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
10399 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
7136 |
10400 |
7137 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
10401 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
10402 { |
|
10403 |
|
10404 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
10405 return return_type_symbol; |
|
10406 |
|
10407 } |
|
10408 |
|
10409 ERROR; |
|
10410 } |
|
10411 |
|
10412 }/*function_word_to_dword*/ |
|
10413 break; |
|
10414 |
|
10415 /**** |
|
10416 *WORD_TO_LWORD |
|
10417 */ |
|
10418 case function_word_to_lword : |
|
10419 { |
|
10420 symbol_c *last_type_symbol = NULL; |
|
10421 |
|
10422 { |
|
10423 identifier_c param_name("IN"); |
|
10424 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10425 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10426 |
|
10427 /* Get the value from a foo(<param_value>) style call */ |
|
10428 if (IN_param_value == NULL) |
|
10429 IN_param_value = function_call_param_iterator.next(); |
|
10430 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10431 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10432 |
|
10433 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
10434 { |
|
10435 |
|
10436 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
10437 return return_type_symbol; |
|
10438 |
|
10439 } |
|
10440 |
|
10441 ERROR; |
|
10442 } |
|
10443 |
|
10444 }/*function_word_to_lword*/ |
|
10445 break; |
|
10446 |
|
10447 /**** |
|
10448 *DWORD_TO_BOOL |
|
10449 */ |
|
10450 case function_dword_to_bool : |
|
10451 { |
|
10452 symbol_c *last_type_symbol = NULL; |
|
10453 |
|
10454 { |
|
10455 identifier_c param_name("IN"); |
|
10456 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10457 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10458 |
|
10459 /* Get the value from a foo(<param_value>) style call */ |
|
10460 if (IN_param_value == NULL) |
|
10461 IN_param_value = function_call_param_iterator.next(); |
|
10462 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10463 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10464 |
|
10465 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
10466 { |
|
10467 |
|
10468 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
10469 return return_type_symbol; |
|
10470 |
|
10471 } |
|
10472 |
|
10473 ERROR; |
|
10474 } |
|
10475 |
|
10476 }/*function_dword_to_bool*/ |
|
10477 break; |
|
10478 |
|
10479 /**** |
|
10480 *DWORD_TO_SINT |
|
10481 */ |
|
10482 case function_dword_to_sint : |
|
10483 { |
|
10484 symbol_c *last_type_symbol = NULL; |
|
10485 |
|
10486 { |
|
10487 identifier_c param_name("IN"); |
|
10488 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10489 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10490 |
|
10491 /* Get the value from a foo(<param_value>) style call */ |
|
10492 if (IN_param_value == NULL) |
|
10493 IN_param_value = function_call_param_iterator.next(); |
|
10494 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10495 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10496 |
|
10497 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
10498 { |
|
10499 |
|
10500 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
10501 return return_type_symbol; |
|
10502 |
|
10503 } |
|
10504 |
|
10505 ERROR; |
|
10506 } |
|
10507 |
|
10508 }/*function_dword_to_sint*/ |
|
10509 break; |
|
10510 |
|
10511 /**** |
|
10512 *DWORD_TO_INT |
|
10513 */ |
|
10514 case function_dword_to_int : |
|
10515 { |
|
10516 symbol_c *last_type_symbol = NULL; |
|
10517 |
|
10518 { |
|
10519 identifier_c param_name("IN"); |
|
10520 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10521 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10522 |
|
10523 /* Get the value from a foo(<param_value>) style call */ |
|
10524 if (IN_param_value == NULL) |
|
10525 IN_param_value = function_call_param_iterator.next(); |
|
10526 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10527 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10528 |
|
10529 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
10530 { |
|
10531 |
|
10532 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
10533 return return_type_symbol; |
|
10534 |
|
10535 } |
|
10536 |
|
10537 ERROR; |
|
10538 } |
|
10539 |
|
10540 }/*function_dword_to_int*/ |
|
10541 break; |
|
10542 |
|
10543 /**** |
|
10544 *DWORD_TO_DINT |
|
10545 */ |
|
10546 case function_dword_to_dint : |
|
10547 { |
|
10548 symbol_c *last_type_symbol = NULL; |
|
10549 |
|
10550 { |
|
10551 identifier_c param_name("IN"); |
|
10552 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10553 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10554 |
|
10555 /* Get the value from a foo(<param_value>) style call */ |
|
10556 if (IN_param_value == NULL) |
|
10557 IN_param_value = function_call_param_iterator.next(); |
|
10558 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10559 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10560 |
|
10561 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
10562 { |
|
10563 |
|
10564 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
10565 return return_type_symbol; |
|
10566 |
|
10567 } |
|
10568 |
|
10569 ERROR; |
|
10570 } |
|
10571 |
|
10572 }/*function_dword_to_dint*/ |
|
10573 break; |
|
10574 |
|
10575 /**** |
|
10576 *DWORD_TO_LINT |
|
10577 */ |
|
10578 case function_dword_to_lint : |
|
10579 { |
|
10580 symbol_c *last_type_symbol = NULL; |
|
10581 |
|
10582 { |
|
10583 identifier_c param_name("IN"); |
|
10584 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10585 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10586 |
|
10587 /* Get the value from a foo(<param_value>) style call */ |
|
10588 if (IN_param_value == NULL) |
|
10589 IN_param_value = function_call_param_iterator.next(); |
|
10590 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10591 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10592 |
|
10593 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
10594 { |
|
10595 |
|
10596 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
10597 return return_type_symbol; |
|
10598 |
|
10599 } |
|
10600 |
|
10601 ERROR; |
|
10602 } |
|
10603 |
|
10604 }/*function_dword_to_lint*/ |
|
10605 break; |
|
10606 |
|
10607 /**** |
|
10608 *DWORD_TO_USINT |
|
10609 */ |
|
10610 case function_dword_to_usint : |
|
10611 { |
|
10612 symbol_c *last_type_symbol = NULL; |
|
10613 |
|
10614 { |
|
10615 identifier_c param_name("IN"); |
|
10616 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10617 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10618 |
|
10619 /* Get the value from a foo(<param_value>) style call */ |
|
10620 if (IN_param_value == NULL) |
|
10621 IN_param_value = function_call_param_iterator.next(); |
|
10622 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10623 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10624 |
|
10625 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
10626 { |
|
10627 |
|
10628 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
10629 return return_type_symbol; |
|
10630 |
|
10631 } |
|
10632 |
|
10633 ERROR; |
|
10634 } |
|
10635 |
|
10636 }/*function_dword_to_usint*/ |
|
10637 break; |
|
10638 |
|
10639 /**** |
|
10640 *DWORD_TO_UINT |
|
10641 */ |
|
10642 case function_dword_to_uint : |
|
10643 { |
|
10644 symbol_c *last_type_symbol = NULL; |
|
10645 |
|
10646 { |
|
10647 identifier_c param_name("IN"); |
|
10648 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10649 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10650 |
|
10651 /* Get the value from a foo(<param_value>) style call */ |
|
10652 if (IN_param_value == NULL) |
|
10653 IN_param_value = function_call_param_iterator.next(); |
|
10654 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10655 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10656 |
|
10657 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
10658 { |
|
10659 |
|
10660 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
10661 return return_type_symbol; |
|
10662 |
|
10663 } |
|
10664 |
|
10665 ERROR; |
|
10666 } |
|
10667 |
|
10668 }/*function_dword_to_uint*/ |
|
10669 break; |
|
10670 |
|
10671 /**** |
|
10672 *DWORD_TO_UDINT |
|
10673 */ |
|
10674 case function_dword_to_udint : |
|
10675 { |
|
10676 symbol_c *last_type_symbol = NULL; |
|
10677 |
|
10678 { |
|
10679 identifier_c param_name("IN"); |
|
10680 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10681 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10682 |
|
10683 /* Get the value from a foo(<param_value>) style call */ |
|
10684 if (IN_param_value == NULL) |
|
10685 IN_param_value = function_call_param_iterator.next(); |
|
10686 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10687 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10688 |
|
10689 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
10690 { |
|
10691 |
|
10692 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
10693 return return_type_symbol; |
|
10694 |
|
10695 } |
|
10696 |
|
10697 ERROR; |
|
10698 } |
|
10699 |
|
10700 }/*function_dword_to_udint*/ |
|
10701 break; |
|
10702 |
|
10703 /**** |
|
10704 *DWORD_TO_ULINT |
|
10705 */ |
|
10706 case function_dword_to_ulint : |
|
10707 { |
|
10708 symbol_c *last_type_symbol = NULL; |
|
10709 |
|
10710 { |
|
10711 identifier_c param_name("IN"); |
|
10712 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10713 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10714 |
|
10715 /* Get the value from a foo(<param_value>) style call */ |
|
10716 if (IN_param_value == NULL) |
|
10717 IN_param_value = function_call_param_iterator.next(); |
|
10718 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10719 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10720 |
|
10721 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
10722 { |
|
10723 |
|
10724 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
10725 return return_type_symbol; |
|
10726 |
|
10727 } |
|
10728 |
|
10729 ERROR; |
|
10730 } |
|
10731 |
|
10732 }/*function_dword_to_ulint*/ |
|
10733 break; |
|
10734 |
|
10735 /**** |
|
10736 *DWORD_TO_REAL |
|
10737 */ |
|
10738 case function_dword_to_real : |
|
10739 { |
|
10740 symbol_c *last_type_symbol = NULL; |
|
10741 |
|
10742 { |
|
10743 identifier_c param_name("IN"); |
|
10744 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10745 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10746 |
|
10747 /* Get the value from a foo(<param_value>) style call */ |
|
10748 if (IN_param_value == NULL) |
|
10749 IN_param_value = function_call_param_iterator.next(); |
|
10750 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10751 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10752 |
|
10753 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
10754 { |
|
10755 |
|
10756 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
10757 return return_type_symbol; |
|
10758 |
|
10759 } |
|
10760 |
|
10761 ERROR; |
|
10762 } |
|
10763 |
|
10764 }/*function_dword_to_real*/ |
|
10765 break; |
|
10766 |
|
10767 /**** |
|
10768 *DWORD_TO_LREAL |
|
10769 */ |
|
10770 case function_dword_to_lreal : |
|
10771 { |
|
10772 symbol_c *last_type_symbol = NULL; |
|
10773 |
|
10774 { |
|
10775 identifier_c param_name("IN"); |
|
10776 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10777 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10778 |
|
10779 /* Get the value from a foo(<param_value>) style call */ |
|
10780 if (IN_param_value == NULL) |
|
10781 IN_param_value = function_call_param_iterator.next(); |
|
10782 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10783 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10784 |
|
10785 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
10786 { |
|
10787 |
|
10788 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
10789 return return_type_symbol; |
|
10790 |
|
10791 } |
|
10792 |
|
10793 ERROR; |
|
10794 } |
|
10795 |
|
10796 }/*function_dword_to_lreal*/ |
|
10797 break; |
|
10798 |
|
10799 /**** |
|
10800 *DWORD_TO_TIME |
|
10801 */ |
|
10802 case function_dword_to_time : |
|
10803 { |
|
10804 symbol_c *last_type_symbol = NULL; |
|
10805 |
|
10806 { |
|
10807 identifier_c param_name("IN"); |
|
10808 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10809 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10810 |
|
10811 /* Get the value from a foo(<param_value>) style call */ |
|
10812 if (IN_param_value == NULL) |
|
10813 IN_param_value = function_call_param_iterator.next(); |
|
10814 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10815 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10816 |
|
10817 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
10818 { |
|
10819 |
|
10820 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
10821 return return_type_symbol; |
|
10822 |
|
10823 } |
|
10824 |
|
10825 ERROR; |
|
10826 } |
|
10827 |
|
10828 }/*function_dword_to_time*/ |
|
10829 break; |
|
10830 |
|
10831 /**** |
|
10832 *DWORD_TO_DATE |
|
10833 */ |
|
10834 case function_dword_to_date : |
|
10835 { |
|
10836 symbol_c *last_type_symbol = NULL; |
|
10837 |
|
10838 { |
|
10839 identifier_c param_name("IN"); |
|
10840 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10841 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10842 |
|
10843 /* Get the value from a foo(<param_value>) style call */ |
|
10844 if (IN_param_value == NULL) |
|
10845 IN_param_value = function_call_param_iterator.next(); |
|
10846 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10847 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10848 |
|
10849 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
10850 { |
|
10851 |
|
10852 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
10853 return return_type_symbol; |
|
10854 |
|
10855 } |
|
10856 |
|
10857 ERROR; |
|
10858 } |
|
10859 |
|
10860 }/*function_dword_to_date*/ |
|
10861 break; |
|
10862 |
|
10863 /**** |
|
10864 *DWORD_TO_TOD |
|
10865 */ |
|
10866 case function_dword_to_tod : |
|
10867 { |
|
10868 symbol_c *last_type_symbol = NULL; |
|
10869 |
|
10870 { |
|
10871 identifier_c param_name("IN"); |
|
10872 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10873 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10874 |
|
10875 /* Get the value from a foo(<param_value>) style call */ |
|
10876 if (IN_param_value == NULL) |
|
10877 IN_param_value = function_call_param_iterator.next(); |
|
10878 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10879 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10880 |
|
10881 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
10882 { |
|
10883 |
|
10884 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
10885 return return_type_symbol; |
|
10886 |
|
10887 } |
|
10888 |
|
10889 ERROR; |
|
10890 } |
|
10891 |
|
10892 }/*function_dword_to_tod*/ |
|
10893 break; |
|
10894 |
|
10895 /**** |
|
10896 *DWORD_TO_DT |
|
10897 */ |
|
10898 case function_dword_to_dt : |
|
10899 { |
|
10900 symbol_c *last_type_symbol = NULL; |
|
10901 |
|
10902 { |
|
10903 identifier_c param_name("IN"); |
|
10904 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10905 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10906 |
|
10907 /* Get the value from a foo(<param_value>) style call */ |
|
10908 if (IN_param_value == NULL) |
|
10909 IN_param_value = function_call_param_iterator.next(); |
|
10910 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10911 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10912 |
|
10913 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
10914 { |
|
10915 |
|
10916 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
10917 return return_type_symbol; |
|
10918 |
|
10919 } |
|
10920 |
|
10921 ERROR; |
|
10922 } |
|
10923 |
|
10924 }/*function_dword_to_dt*/ |
|
10925 break; |
|
10926 |
|
10927 /**** |
|
10928 *DWORD_TO_STRING |
|
10929 */ |
|
10930 case function_dword_to_string : |
|
10931 { |
|
10932 symbol_c *last_type_symbol = NULL; |
|
10933 |
|
10934 { |
|
10935 identifier_c param_name("IN"); |
|
10936 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10937 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10938 |
|
10939 /* Get the value from a foo(<param_value>) style call */ |
|
10940 if (IN_param_value == NULL) |
|
10941 IN_param_value = function_call_param_iterator.next(); |
|
10942 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10943 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10944 |
|
10945 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
10946 { |
|
10947 |
|
10948 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
10949 return return_type_symbol; |
|
10950 |
|
10951 } |
|
10952 |
|
10953 ERROR; |
|
10954 } |
|
10955 |
|
10956 }/*function_dword_to_string*/ |
|
10957 break; |
|
10958 |
|
10959 /**** |
|
10960 *DWORD_TO_BYTE |
|
10961 */ |
|
10962 case function_dword_to_byte : |
|
10963 { |
|
10964 symbol_c *last_type_symbol = NULL; |
|
10965 |
|
10966 { |
|
10967 identifier_c param_name("IN"); |
|
10968 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10969 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10970 |
|
10971 /* Get the value from a foo(<param_value>) style call */ |
|
10972 if (IN_param_value == NULL) |
|
10973 IN_param_value = function_call_param_iterator.next(); |
|
10974 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10975 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10976 |
|
10977 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
10978 { |
|
10979 |
|
10980 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
10981 return return_type_symbol; |
|
10982 |
|
10983 } |
|
10984 |
|
10985 ERROR; |
|
10986 } |
|
10987 |
|
10988 }/*function_dword_to_byte*/ |
|
10989 break; |
|
10990 |
|
10991 /**** |
|
10992 *DWORD_TO_WORD |
|
10993 */ |
|
10994 case function_dword_to_word : |
|
10995 { |
|
10996 symbol_c *last_type_symbol = NULL; |
|
10997 |
|
10998 { |
|
10999 identifier_c param_name("IN"); |
|
11000 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11001 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11002 |
|
11003 /* Get the value from a foo(<param_value>) style call */ |
|
11004 if (IN_param_value == NULL) |
|
11005 IN_param_value = function_call_param_iterator.next(); |
|
11006 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11007 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11008 |
|
11009 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
7138 { |
11010 { |
7139 |
11011 |
7140 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
11012 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
7141 return return_type_symbol; |
11013 return return_type_symbol; |
7142 |
11014 |
7143 } |
11015 } |
7144 |
11016 |
7145 ERROR; |
11017 ERROR; |
7146 } |
11018 } |
7147 |
11019 |
7148 }/*function_time_to_word*/ |
11020 }/*function_dword_to_word*/ |
7149 break; |
11021 break; |
7150 |
11022 |
7151 /**** |
11023 /**** |
7152 *TIME_TO_DWORD |
11024 *DWORD_TO_LWORD |
7153 */ |
11025 */ |
7154 case function_time_to_dword : |
11026 case function_dword_to_lword : |
7155 { |
11027 { |
7156 symbol_c *last_type_symbol = NULL; |
11028 symbol_c *last_type_symbol = NULL; |
7157 |
11029 |
7158 { |
11030 { |
7159 identifier_c param_name("IN"); |
11031 identifier_c param_name("IN"); |
7160 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
11032 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
7161 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
11033 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
7162 |
11034 |
7163 /* Get the value from a foo(<param_value>) style call */ |
11035 /* Get the value from a foo(<param_value>) style call */ |
7164 if (IN_param_value == NULL) |
11036 if (IN_param_value == NULL) |
7165 IN_param_value = function_call_param_iterator.next(); |
11037 IN_param_value = function_call_param_iterator.next(); |
7166 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
11038 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
7167 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
11039 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
7168 |
11040 |
7169 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
11041 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
11042 { |
|
11043 |
|
11044 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
11045 return return_type_symbol; |
|
11046 |
|
11047 } |
|
11048 |
|
11049 ERROR; |
|
11050 } |
|
11051 |
|
11052 }/*function_dword_to_lword*/ |
|
11053 break; |
|
11054 |
|
11055 /**** |
|
11056 *LWORD_TO_BOOL |
|
11057 */ |
|
11058 case function_lword_to_bool : |
|
11059 { |
|
11060 symbol_c *last_type_symbol = NULL; |
|
11061 |
|
11062 { |
|
11063 identifier_c param_name("IN"); |
|
11064 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11065 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11066 |
|
11067 /* Get the value from a foo(<param_value>) style call */ |
|
11068 if (IN_param_value == NULL) |
|
11069 IN_param_value = function_call_param_iterator.next(); |
|
11070 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11071 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11072 |
|
11073 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11074 { |
|
11075 |
|
11076 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
11077 return return_type_symbol; |
|
11078 |
|
11079 } |
|
11080 |
|
11081 ERROR; |
|
11082 } |
|
11083 |
|
11084 }/*function_lword_to_bool*/ |
|
11085 break; |
|
11086 |
|
11087 /**** |
|
11088 *LWORD_TO_SINT |
|
11089 */ |
|
11090 case function_lword_to_sint : |
|
11091 { |
|
11092 symbol_c *last_type_symbol = NULL; |
|
11093 |
|
11094 { |
|
11095 identifier_c param_name("IN"); |
|
11096 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11097 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11098 |
|
11099 /* Get the value from a foo(<param_value>) style call */ |
|
11100 if (IN_param_value == NULL) |
|
11101 IN_param_value = function_call_param_iterator.next(); |
|
11102 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11103 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11104 |
|
11105 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11106 { |
|
11107 |
|
11108 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
11109 return return_type_symbol; |
|
11110 |
|
11111 } |
|
11112 |
|
11113 ERROR; |
|
11114 } |
|
11115 |
|
11116 }/*function_lword_to_sint*/ |
|
11117 break; |
|
11118 |
|
11119 /**** |
|
11120 *LWORD_TO_INT |
|
11121 */ |
|
11122 case function_lword_to_int : |
|
11123 { |
|
11124 symbol_c *last_type_symbol = NULL; |
|
11125 |
|
11126 { |
|
11127 identifier_c param_name("IN"); |
|
11128 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11129 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11130 |
|
11131 /* Get the value from a foo(<param_value>) style call */ |
|
11132 if (IN_param_value == NULL) |
|
11133 IN_param_value = function_call_param_iterator.next(); |
|
11134 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11135 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11136 |
|
11137 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11138 { |
|
11139 |
|
11140 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
11141 return return_type_symbol; |
|
11142 |
|
11143 } |
|
11144 |
|
11145 ERROR; |
|
11146 } |
|
11147 |
|
11148 }/*function_lword_to_int*/ |
|
11149 break; |
|
11150 |
|
11151 /**** |
|
11152 *LWORD_TO_DINT |
|
11153 */ |
|
11154 case function_lword_to_dint : |
|
11155 { |
|
11156 symbol_c *last_type_symbol = NULL; |
|
11157 |
|
11158 { |
|
11159 identifier_c param_name("IN"); |
|
11160 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11161 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11162 |
|
11163 /* Get the value from a foo(<param_value>) style call */ |
|
11164 if (IN_param_value == NULL) |
|
11165 IN_param_value = function_call_param_iterator.next(); |
|
11166 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11167 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11168 |
|
11169 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11170 { |
|
11171 |
|
11172 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
11173 return return_type_symbol; |
|
11174 |
|
11175 } |
|
11176 |
|
11177 ERROR; |
|
11178 } |
|
11179 |
|
11180 }/*function_lword_to_dint*/ |
|
11181 break; |
|
11182 |
|
11183 /**** |
|
11184 *LWORD_TO_LINT |
|
11185 */ |
|
11186 case function_lword_to_lint : |
|
11187 { |
|
11188 symbol_c *last_type_symbol = NULL; |
|
11189 |
|
11190 { |
|
11191 identifier_c param_name("IN"); |
|
11192 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11193 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11194 |
|
11195 /* Get the value from a foo(<param_value>) style call */ |
|
11196 if (IN_param_value == NULL) |
|
11197 IN_param_value = function_call_param_iterator.next(); |
|
11198 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11199 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11200 |
|
11201 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11202 { |
|
11203 |
|
11204 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
11205 return return_type_symbol; |
|
11206 |
|
11207 } |
|
11208 |
|
11209 ERROR; |
|
11210 } |
|
11211 |
|
11212 }/*function_lword_to_lint*/ |
|
11213 break; |
|
11214 |
|
11215 /**** |
|
11216 *LWORD_TO_USINT |
|
11217 */ |
|
11218 case function_lword_to_usint : |
|
11219 { |
|
11220 symbol_c *last_type_symbol = NULL; |
|
11221 |
|
11222 { |
|
11223 identifier_c param_name("IN"); |
|
11224 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11225 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11226 |
|
11227 /* Get the value from a foo(<param_value>) style call */ |
|
11228 if (IN_param_value == NULL) |
|
11229 IN_param_value = function_call_param_iterator.next(); |
|
11230 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11231 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11232 |
|
11233 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11234 { |
|
11235 |
|
11236 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
11237 return return_type_symbol; |
|
11238 |
|
11239 } |
|
11240 |
|
11241 ERROR; |
|
11242 } |
|
11243 |
|
11244 }/*function_lword_to_usint*/ |
|
11245 break; |
|
11246 |
|
11247 /**** |
|
11248 *LWORD_TO_UINT |
|
11249 */ |
|
11250 case function_lword_to_uint : |
|
11251 { |
|
11252 symbol_c *last_type_symbol = NULL; |
|
11253 |
|
11254 { |
|
11255 identifier_c param_name("IN"); |
|
11256 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11257 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11258 |
|
11259 /* Get the value from a foo(<param_value>) style call */ |
|
11260 if (IN_param_value == NULL) |
|
11261 IN_param_value = function_call_param_iterator.next(); |
|
11262 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11263 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11264 |
|
11265 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11266 { |
|
11267 |
|
11268 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
11269 return return_type_symbol; |
|
11270 |
|
11271 } |
|
11272 |
|
11273 ERROR; |
|
11274 } |
|
11275 |
|
11276 }/*function_lword_to_uint*/ |
|
11277 break; |
|
11278 |
|
11279 /**** |
|
11280 *LWORD_TO_UDINT |
|
11281 */ |
|
11282 case function_lword_to_udint : |
|
11283 { |
|
11284 symbol_c *last_type_symbol = NULL; |
|
11285 |
|
11286 { |
|
11287 identifier_c param_name("IN"); |
|
11288 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11289 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11290 |
|
11291 /* Get the value from a foo(<param_value>) style call */ |
|
11292 if (IN_param_value == NULL) |
|
11293 IN_param_value = function_call_param_iterator.next(); |
|
11294 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11295 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11296 |
|
11297 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11298 { |
|
11299 |
|
11300 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
11301 return return_type_symbol; |
|
11302 |
|
11303 } |
|
11304 |
|
11305 ERROR; |
|
11306 } |
|
11307 |
|
11308 }/*function_lword_to_udint*/ |
|
11309 break; |
|
11310 |
|
11311 /**** |
|
11312 *LWORD_TO_ULINT |
|
11313 */ |
|
11314 case function_lword_to_ulint : |
|
11315 { |
|
11316 symbol_c *last_type_symbol = NULL; |
|
11317 |
|
11318 { |
|
11319 identifier_c param_name("IN"); |
|
11320 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11321 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11322 |
|
11323 /* Get the value from a foo(<param_value>) style call */ |
|
11324 if (IN_param_value == NULL) |
|
11325 IN_param_value = function_call_param_iterator.next(); |
|
11326 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11327 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11328 |
|
11329 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11330 { |
|
11331 |
|
11332 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
11333 return return_type_symbol; |
|
11334 |
|
11335 } |
|
11336 |
|
11337 ERROR; |
|
11338 } |
|
11339 |
|
11340 }/*function_lword_to_ulint*/ |
|
11341 break; |
|
11342 |
|
11343 /**** |
|
11344 *LWORD_TO_REAL |
|
11345 */ |
|
11346 case function_lword_to_real : |
|
11347 { |
|
11348 symbol_c *last_type_symbol = NULL; |
|
11349 |
|
11350 { |
|
11351 identifier_c param_name("IN"); |
|
11352 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11353 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11354 |
|
11355 /* Get the value from a foo(<param_value>) style call */ |
|
11356 if (IN_param_value == NULL) |
|
11357 IN_param_value = function_call_param_iterator.next(); |
|
11358 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11359 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11360 |
|
11361 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11362 { |
|
11363 |
|
11364 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
11365 return return_type_symbol; |
|
11366 |
|
11367 } |
|
11368 |
|
11369 ERROR; |
|
11370 } |
|
11371 |
|
11372 }/*function_lword_to_real*/ |
|
11373 break; |
|
11374 |
|
11375 /**** |
|
11376 *LWORD_TO_LREAL |
|
11377 */ |
|
11378 case function_lword_to_lreal : |
|
11379 { |
|
11380 symbol_c *last_type_symbol = NULL; |
|
11381 |
|
11382 { |
|
11383 identifier_c param_name("IN"); |
|
11384 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11385 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11386 |
|
11387 /* Get the value from a foo(<param_value>) style call */ |
|
11388 if (IN_param_value == NULL) |
|
11389 IN_param_value = function_call_param_iterator.next(); |
|
11390 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11391 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11392 |
|
11393 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11394 { |
|
11395 |
|
11396 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
11397 return return_type_symbol; |
|
11398 |
|
11399 } |
|
11400 |
|
11401 ERROR; |
|
11402 } |
|
11403 |
|
11404 }/*function_lword_to_lreal*/ |
|
11405 break; |
|
11406 |
|
11407 /**** |
|
11408 *LWORD_TO_TIME |
|
11409 */ |
|
11410 case function_lword_to_time : |
|
11411 { |
|
11412 symbol_c *last_type_symbol = NULL; |
|
11413 |
|
11414 { |
|
11415 identifier_c param_name("IN"); |
|
11416 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11417 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11418 |
|
11419 /* Get the value from a foo(<param_value>) style call */ |
|
11420 if (IN_param_value == NULL) |
|
11421 IN_param_value = function_call_param_iterator.next(); |
|
11422 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11423 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11424 |
|
11425 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11426 { |
|
11427 |
|
11428 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
11429 return return_type_symbol; |
|
11430 |
|
11431 } |
|
11432 |
|
11433 ERROR; |
|
11434 } |
|
11435 |
|
11436 }/*function_lword_to_time*/ |
|
11437 break; |
|
11438 |
|
11439 /**** |
|
11440 *LWORD_TO_DATE |
|
11441 */ |
|
11442 case function_lword_to_date : |
|
11443 { |
|
11444 symbol_c *last_type_symbol = NULL; |
|
11445 |
|
11446 { |
|
11447 identifier_c param_name("IN"); |
|
11448 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11449 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11450 |
|
11451 /* Get the value from a foo(<param_value>) style call */ |
|
11452 if (IN_param_value == NULL) |
|
11453 IN_param_value = function_call_param_iterator.next(); |
|
11454 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11455 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11456 |
|
11457 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11458 { |
|
11459 |
|
11460 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
11461 return return_type_symbol; |
|
11462 |
|
11463 } |
|
11464 |
|
11465 ERROR; |
|
11466 } |
|
11467 |
|
11468 }/*function_lword_to_date*/ |
|
11469 break; |
|
11470 |
|
11471 /**** |
|
11472 *LWORD_TO_TOD |
|
11473 */ |
|
11474 case function_lword_to_tod : |
|
11475 { |
|
11476 symbol_c *last_type_symbol = NULL; |
|
11477 |
|
11478 { |
|
11479 identifier_c param_name("IN"); |
|
11480 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11481 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11482 |
|
11483 /* Get the value from a foo(<param_value>) style call */ |
|
11484 if (IN_param_value == NULL) |
|
11485 IN_param_value = function_call_param_iterator.next(); |
|
11486 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11487 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11488 |
|
11489 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11490 { |
|
11491 |
|
11492 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
11493 return return_type_symbol; |
|
11494 |
|
11495 } |
|
11496 |
|
11497 ERROR; |
|
11498 } |
|
11499 |
|
11500 }/*function_lword_to_tod*/ |
|
11501 break; |
|
11502 |
|
11503 /**** |
|
11504 *LWORD_TO_DT |
|
11505 */ |
|
11506 case function_lword_to_dt : |
|
11507 { |
|
11508 symbol_c *last_type_symbol = NULL; |
|
11509 |
|
11510 { |
|
11511 identifier_c param_name("IN"); |
|
11512 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11513 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11514 |
|
11515 /* Get the value from a foo(<param_value>) style call */ |
|
11516 if (IN_param_value == NULL) |
|
11517 IN_param_value = function_call_param_iterator.next(); |
|
11518 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11519 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11520 |
|
11521 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11522 { |
|
11523 |
|
11524 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
11525 return return_type_symbol; |
|
11526 |
|
11527 } |
|
11528 |
|
11529 ERROR; |
|
11530 } |
|
11531 |
|
11532 }/*function_lword_to_dt*/ |
|
11533 break; |
|
11534 |
|
11535 /**** |
|
11536 *LWORD_TO_STRING |
|
11537 */ |
|
11538 case function_lword_to_string : |
|
11539 { |
|
11540 symbol_c *last_type_symbol = NULL; |
|
11541 |
|
11542 { |
|
11543 identifier_c param_name("IN"); |
|
11544 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11545 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11546 |
|
11547 /* Get the value from a foo(<param_value>) style call */ |
|
11548 if (IN_param_value == NULL) |
|
11549 IN_param_value = function_call_param_iterator.next(); |
|
11550 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11551 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11552 |
|
11553 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11554 { |
|
11555 |
|
11556 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
11557 return return_type_symbol; |
|
11558 |
|
11559 } |
|
11560 |
|
11561 ERROR; |
|
11562 } |
|
11563 |
|
11564 }/*function_lword_to_string*/ |
|
11565 break; |
|
11566 |
|
11567 /**** |
|
11568 *LWORD_TO_BYTE |
|
11569 */ |
|
11570 case function_lword_to_byte : |
|
11571 { |
|
11572 symbol_c *last_type_symbol = NULL; |
|
11573 |
|
11574 { |
|
11575 identifier_c param_name("IN"); |
|
11576 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11577 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11578 |
|
11579 /* Get the value from a foo(<param_value>) style call */ |
|
11580 if (IN_param_value == NULL) |
|
11581 IN_param_value = function_call_param_iterator.next(); |
|
11582 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11583 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11584 |
|
11585 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11586 { |
|
11587 |
|
11588 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
11589 return return_type_symbol; |
|
11590 |
|
11591 } |
|
11592 |
|
11593 ERROR; |
|
11594 } |
|
11595 |
|
11596 }/*function_lword_to_byte*/ |
|
11597 break; |
|
11598 |
|
11599 /**** |
|
11600 *LWORD_TO_WORD |
|
11601 */ |
|
11602 case function_lword_to_word : |
|
11603 { |
|
11604 symbol_c *last_type_symbol = NULL; |
|
11605 |
|
11606 { |
|
11607 identifier_c param_name("IN"); |
|
11608 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11609 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11610 |
|
11611 /* Get the value from a foo(<param_value>) style call */ |
|
11612 if (IN_param_value == NULL) |
|
11613 IN_param_value = function_call_param_iterator.next(); |
|
11614 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11615 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11616 |
|
11617 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
11618 { |
|
11619 |
|
11620 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
11621 return return_type_symbol; |
|
11622 |
|
11623 } |
|
11624 |
|
11625 ERROR; |
|
11626 } |
|
11627 |
|
11628 }/*function_lword_to_word*/ |
|
11629 break; |
|
11630 |
|
11631 /**** |
|
11632 *LWORD_TO_DWORD |
|
11633 */ |
|
11634 case function_lword_to_dword : |
|
11635 { |
|
11636 symbol_c *last_type_symbol = NULL; |
|
11637 |
|
11638 { |
|
11639 identifier_c param_name("IN"); |
|
11640 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11641 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11642 |
|
11643 /* Get the value from a foo(<param_value>) style call */ |
|
11644 if (IN_param_value == NULL) |
|
11645 IN_param_value = function_call_param_iterator.next(); |
|
11646 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11647 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11648 |
|
11649 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
7170 { |
11650 { |
7171 |
11651 |
7172 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
11652 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
7173 return return_type_symbol; |
11653 return return_type_symbol; |
7174 |
11654 |
7175 } |
11655 } |
7176 |
11656 |
7177 ERROR; |
11657 ERROR; |
7178 } |
11658 } |
7179 |
11659 |
7180 }/*function_time_to_dword*/ |
11660 }/*function_lword_to_dword*/ |
7181 break; |
11661 break; |
7182 |
11662 |
7183 /**** |
11663 /**** |
7184 *TIME_TO_LWORD |
11664 *TRUNC |
7185 */ |
11665 */ |
7186 case function_time_to_lword : |
11666 case function_trunc : |
7187 { |
11667 { |
7188 symbol_c *last_type_symbol = NULL; |
11668 symbol_c *last_type_symbol = NULL; |
7189 |
11669 |
7190 { |
11670 { |
7191 identifier_c param_name("IN"); |
11671 identifier_c param_name("IN"); |
7192 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
11672 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
7193 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
11673 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
7194 |
11674 |
7195 /* Get the value from a foo(<param_value>) style call */ |
11675 /* Get the value from a foo(<param_value>) style call */ |
7196 if (IN_param_value == NULL) |
11676 if (IN_param_value == NULL) |
7197 IN_param_value = function_call_param_iterator.next(); |
11677 IN_param_value = function_call_param_iterator.next(); |
7198 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
11678 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
7199 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
11679 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
7200 |
11680 |
7201 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
11681 if(search_expression_type->is_real_type(IN_type_symbol)) |
7202 { |
11682 { |
7203 |
11683 |
7204 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
11684 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
7205 return return_type_symbol; |
11685 return return_type_symbol; |
7206 |
11686 |
7207 } |
11687 } |
7208 |
11688 |
7209 ERROR; |
11689 ERROR; |
7210 } |
11690 } |
7211 |
11691 |
7212 }/*function_time_to_lword*/ |
11692 }/*function_trunc*/ |
7213 break; |
11693 break; |
7214 |
11694 |
7215 /**** |
11695 /**** |
7216 *DATE_TO_BOOL |
11696 *BCD_TO_USINT |
7217 */ |
11697 */ |
7218 case function_date_to_bool : |
11698 case function_bcd_to_usint : |
7219 { |
11699 { |
7220 symbol_c *last_type_symbol = NULL; |
11700 symbol_c *last_type_symbol = NULL; |
7221 |
11701 |
7222 { |
11702 { |
7223 identifier_c param_name("IN"); |
11703 identifier_c param_name("IN"); |
7224 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
11704 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
7225 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
11705 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
7226 |
11706 |
7227 /* Get the value from a foo(<param_value>) style call */ |
11707 /* Get the value from a foo(<param_value>) style call */ |
7228 if (IN_param_value == NULL) |
11708 if (IN_param_value == NULL) |
7229 IN_param_value = function_call_param_iterator.next(); |
11709 IN_param_value = function_call_param_iterator.next(); |
7230 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
11710 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
7231 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
11711 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
7232 |
11712 |
7233 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
11713 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
7234 { |
|
7235 |
|
7236 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
7237 return return_type_symbol; |
|
7238 |
|
7239 } |
|
7240 |
|
7241 ERROR; |
|
7242 } |
|
7243 |
|
7244 }/*function_date_to_bool*/ |
|
7245 break; |
|
7246 |
|
7247 /**** |
|
7248 *DATE_TO_SINT |
|
7249 */ |
|
7250 case function_date_to_sint : |
|
7251 { |
|
7252 symbol_c *last_type_symbol = NULL; |
|
7253 |
|
7254 { |
|
7255 identifier_c param_name("IN"); |
|
7256 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7257 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7258 |
|
7259 /* Get the value from a foo(<param_value>) style call */ |
|
7260 if (IN_param_value == NULL) |
|
7261 IN_param_value = function_call_param_iterator.next(); |
|
7262 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7263 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7264 |
|
7265 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
|
7266 { |
|
7267 |
|
7268 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
7269 return return_type_symbol; |
|
7270 |
|
7271 } |
|
7272 |
|
7273 ERROR; |
|
7274 } |
|
7275 |
|
7276 }/*function_date_to_sint*/ |
|
7277 break; |
|
7278 |
|
7279 /**** |
|
7280 *DATE_TO_INT |
|
7281 */ |
|
7282 case function_date_to_int : |
|
7283 { |
|
7284 symbol_c *last_type_symbol = NULL; |
|
7285 |
|
7286 { |
|
7287 identifier_c param_name("IN"); |
|
7288 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7289 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7290 |
|
7291 /* Get the value from a foo(<param_value>) style call */ |
|
7292 if (IN_param_value == NULL) |
|
7293 IN_param_value = function_call_param_iterator.next(); |
|
7294 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7295 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7296 |
|
7297 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
|
7298 { |
|
7299 |
|
7300 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
7301 return return_type_symbol; |
|
7302 |
|
7303 } |
|
7304 |
|
7305 ERROR; |
|
7306 } |
|
7307 |
|
7308 }/*function_date_to_int*/ |
|
7309 break; |
|
7310 |
|
7311 /**** |
|
7312 *DATE_TO_DINT |
|
7313 */ |
|
7314 case function_date_to_dint : |
|
7315 { |
|
7316 symbol_c *last_type_symbol = NULL; |
|
7317 |
|
7318 { |
|
7319 identifier_c param_name("IN"); |
|
7320 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7321 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7322 |
|
7323 /* Get the value from a foo(<param_value>) style call */ |
|
7324 if (IN_param_value == NULL) |
|
7325 IN_param_value = function_call_param_iterator.next(); |
|
7326 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7327 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7328 |
|
7329 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
|
7330 { |
|
7331 |
|
7332 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
7333 return return_type_symbol; |
|
7334 |
|
7335 } |
|
7336 |
|
7337 ERROR; |
|
7338 } |
|
7339 |
|
7340 }/*function_date_to_dint*/ |
|
7341 break; |
|
7342 |
|
7343 /**** |
|
7344 *DATE_TO_LINT |
|
7345 */ |
|
7346 case function_date_to_lint : |
|
7347 { |
|
7348 symbol_c *last_type_symbol = NULL; |
|
7349 |
|
7350 { |
|
7351 identifier_c param_name("IN"); |
|
7352 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7353 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7354 |
|
7355 /* Get the value from a foo(<param_value>) style call */ |
|
7356 if (IN_param_value == NULL) |
|
7357 IN_param_value = function_call_param_iterator.next(); |
|
7358 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7359 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7360 |
|
7361 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
|
7362 { |
|
7363 |
|
7364 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
7365 return return_type_symbol; |
|
7366 |
|
7367 } |
|
7368 |
|
7369 ERROR; |
|
7370 } |
|
7371 |
|
7372 }/*function_date_to_lint*/ |
|
7373 break; |
|
7374 |
|
7375 /**** |
|
7376 *DATE_TO_USINT |
|
7377 */ |
|
7378 case function_date_to_usint : |
|
7379 { |
|
7380 symbol_c *last_type_symbol = NULL; |
|
7381 |
|
7382 { |
|
7383 identifier_c param_name("IN"); |
|
7384 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7385 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7386 |
|
7387 /* Get the value from a foo(<param_value>) style call */ |
|
7388 if (IN_param_value == NULL) |
|
7389 IN_param_value = function_call_param_iterator.next(); |
|
7390 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7391 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7392 |
|
7393 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
|
7394 { |
11714 { |
7395 |
11715 |
7396 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
11716 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
7397 return return_type_symbol; |
11717 return return_type_symbol; |
7398 |
11718 |
7399 } |
11719 } |
7400 |
11720 |
7401 ERROR; |
11721 ERROR; |
7402 } |
11722 } |
7403 |
11723 |
7404 }/*function_date_to_usint*/ |
11724 }/*function_bcd_to_usint*/ |
7405 break; |
11725 break; |
7406 |
11726 |
7407 /**** |
11727 /**** |
7408 *DATE_TO_UINT |
11728 *BCD_TO_UINT |
7409 */ |
11729 */ |
7410 case function_date_to_uint : |
11730 case function_bcd_to_uint : |
7411 { |
11731 { |
7412 symbol_c *last_type_symbol = NULL; |
11732 symbol_c *last_type_symbol = NULL; |
7413 |
11733 |
7414 { |
11734 { |
7415 identifier_c param_name("IN"); |
11735 identifier_c param_name("IN"); |
7416 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
11736 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
7417 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
11737 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
7418 |
11738 |
7419 /* Get the value from a foo(<param_value>) style call */ |
11739 /* Get the value from a foo(<param_value>) style call */ |
7420 if (IN_param_value == NULL) |
11740 if (IN_param_value == NULL) |
7421 IN_param_value = function_call_param_iterator.next(); |
11741 IN_param_value = function_call_param_iterator.next(); |
7422 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
11742 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
7423 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
11743 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
7424 |
11744 |
7425 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
11745 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
7426 { |
11746 { |
7427 |
11747 |
7428 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
11748 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
7429 return return_type_symbol; |
11749 return return_type_symbol; |
7430 |
11750 |
7431 } |
11751 } |
7432 |
11752 |
7433 ERROR; |
11753 ERROR; |
7434 } |
11754 } |
7435 |
11755 |
7436 }/*function_date_to_uint*/ |
11756 }/*function_bcd_to_uint*/ |
7437 break; |
11757 break; |
7438 |
11758 |
7439 /**** |
11759 /**** |
7440 *DATE_TO_UDINT |
11760 *BCD_TO_UDINT |
7441 */ |
11761 */ |
7442 case function_date_to_udint : |
11762 case function_bcd_to_udint : |
7443 { |
11763 { |
7444 symbol_c *last_type_symbol = NULL; |
11764 symbol_c *last_type_symbol = NULL; |
7445 |
11765 |
7446 { |
11766 { |
7447 identifier_c param_name("IN"); |
11767 identifier_c param_name("IN"); |
7448 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
11768 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
7449 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
11769 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
7450 |
11770 |
7451 /* Get the value from a foo(<param_value>) style call */ |
11771 /* Get the value from a foo(<param_value>) style call */ |
7452 if (IN_param_value == NULL) |
11772 if (IN_param_value == NULL) |
7453 IN_param_value = function_call_param_iterator.next(); |
11773 IN_param_value = function_call_param_iterator.next(); |
7454 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
11774 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
7455 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
11775 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
7456 |
11776 |
7457 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
11777 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
7458 { |
11778 { |
7459 |
11779 |
7460 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
11780 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
7461 return return_type_symbol; |
11781 return return_type_symbol; |
7462 |
11782 |
7463 } |
11783 } |
7464 |
11784 |
7465 ERROR; |
11785 ERROR; |
7466 } |
11786 } |
7467 |
11787 |
7468 }/*function_date_to_udint*/ |
11788 }/*function_bcd_to_udint*/ |
7469 break; |
11789 break; |
7470 |
11790 |
7471 /**** |
11791 /**** |
7472 *DATE_TO_ULINT |
11792 *BCD_TO_ULINT |
7473 */ |
11793 */ |
7474 case function_date_to_ulint : |
11794 case function_bcd_to_ulint : |
7475 { |
11795 { |
7476 symbol_c *last_type_symbol = NULL; |
11796 symbol_c *last_type_symbol = NULL; |
7477 |
11797 |
7478 { |
11798 { |
7479 identifier_c param_name("IN"); |
11799 identifier_c param_name("IN"); |
7480 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
11800 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
7481 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
11801 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
7482 |
11802 |
7483 /* Get the value from a foo(<param_value>) style call */ |
11803 /* Get the value from a foo(<param_value>) style call */ |
7484 if (IN_param_value == NULL) |
11804 if (IN_param_value == NULL) |
7485 IN_param_value = function_call_param_iterator.next(); |
11805 IN_param_value = function_call_param_iterator.next(); |
7486 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
11806 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
7487 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
11807 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
7488 |
11808 |
7489 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
11809 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
7490 { |
11810 { |
7491 |
11811 |
7492 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
11812 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
7493 return return_type_symbol; |
11813 return return_type_symbol; |
7494 |
11814 |
7495 } |
11815 } |
7496 |
11816 |
7497 ERROR; |
11817 ERROR; |
7498 } |
11818 } |
7499 |
11819 |
7500 }/*function_date_to_ulint*/ |
11820 }/*function_bcd_to_ulint*/ |
7501 break; |
11821 break; |
7502 |
11822 |
7503 /**** |
11823 /**** |
7504 *DATE_TO_REAL |
11824 *USINT_TO_BCD |
7505 */ |
11825 */ |
7506 case function_date_to_real : |
11826 case function_usint_to_bcd : |
7507 { |
11827 { |
7508 symbol_c *last_type_symbol = NULL; |
11828 symbol_c *last_type_symbol = NULL; |
7509 |
11829 |
7510 { |
11830 { |
7511 identifier_c param_name("IN"); |
11831 identifier_c param_name("IN"); |
7512 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
11832 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
7513 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
11833 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
7514 |
11834 |
7515 /* Get the value from a foo(<param_value>) style call */ |
11835 /* Get the value from a foo(<param_value>) style call */ |
7516 if (IN_param_value == NULL) |
11836 if (IN_param_value == NULL) |
7517 IN_param_value = function_call_param_iterator.next(); |
11837 IN_param_value = function_call_param_iterator.next(); |
7518 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
11838 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
7519 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
11839 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
7520 |
11840 |
7521 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
11841 if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) |
7522 { |
11842 { |
7523 |
11843 |
7524 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
11844 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
7525 return return_type_symbol; |
11845 return return_type_symbol; |
7526 |
11846 |
7527 } |
11847 } |
7528 |
11848 |
7529 ERROR; |
11849 ERROR; |
7530 } |
11850 } |
7531 |
11851 |
7532 }/*function_date_to_real*/ |
11852 }/*function_usint_to_bcd*/ |
7533 break; |
11853 break; |
7534 |
11854 |
7535 /**** |
11855 /**** |
7536 *DATE_TO_LREAL |
11856 *UINT_TO_BCD |
7537 */ |
11857 */ |
7538 case function_date_to_lreal : |
11858 case function_uint_to_bcd : |
7539 { |
11859 { |
7540 symbol_c *last_type_symbol = NULL; |
11860 symbol_c *last_type_symbol = NULL; |
7541 |
11861 |
7542 { |
11862 { |
7543 identifier_c param_name("IN"); |
11863 identifier_c param_name("IN"); |
7544 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
11864 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
7545 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
11865 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
7546 |
11866 |
7547 /* Get the value from a foo(<param_value>) style call */ |
11867 /* Get the value from a foo(<param_value>) style call */ |
7548 if (IN_param_value == NULL) |
11868 if (IN_param_value == NULL) |
7549 IN_param_value = function_call_param_iterator.next(); |
11869 IN_param_value = function_call_param_iterator.next(); |
7550 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
11870 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
7551 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
11871 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
7552 |
11872 |
7553 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
11873 if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) |
7554 { |
11874 { |
7555 |
11875 |
7556 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
11876 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
7557 return return_type_symbol; |
11877 return return_type_symbol; |
7558 |
11878 |
7559 } |
11879 } |
7560 |
11880 |
7561 ERROR; |
11881 ERROR; |
7562 } |
11882 } |
7563 |
11883 |
7564 }/*function_date_to_lreal*/ |
11884 }/*function_uint_to_bcd*/ |
7565 break; |
11885 break; |
7566 |
11886 |
7567 /**** |
11887 /**** |
7568 *DATE_TO_STRING |
11888 *UDINT_TO_BCD |
7569 */ |
11889 */ |
7570 case function_date_to_string : |
11890 case function_udint_to_bcd : |
7571 { |
11891 { |
7572 symbol_c *last_type_symbol = NULL; |
11892 symbol_c *last_type_symbol = NULL; |
7573 |
11893 |
7574 { |
11894 { |
7575 identifier_c param_name("IN"); |
11895 identifier_c param_name("IN"); |
7576 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
11896 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
7577 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
11897 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
7578 |
11898 |
7579 /* Get the value from a foo(<param_value>) style call */ |
11899 /* Get the value from a foo(<param_value>) style call */ |
7580 if (IN_param_value == NULL) |
11900 if (IN_param_value == NULL) |
7581 IN_param_value = function_call_param_iterator.next(); |
11901 IN_param_value = function_call_param_iterator.next(); |
7582 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
11902 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
7583 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
11903 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
7584 |
11904 |
7585 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
11905 if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) |
7586 { |
11906 { |
7587 |
11907 |
7588 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
11908 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
7589 return return_type_symbol; |
11909 return return_type_symbol; |
7590 |
11910 |
7591 } |
11911 } |
7592 |
11912 |
7593 ERROR; |
11913 ERROR; |
7594 } |
11914 } |
7595 |
11915 |
7596 }/*function_date_to_string*/ |
11916 }/*function_udint_to_bcd*/ |
7597 break; |
11917 break; |
7598 |
11918 |
7599 /**** |
11919 /**** |
7600 *DATE_TO_BYTE |
11920 *ULINT_TO_BCD |
7601 */ |
11921 */ |
7602 case function_date_to_byte : |
11922 case function_ulint_to_bcd : |
7603 { |
11923 { |
7604 symbol_c *last_type_symbol = NULL; |
11924 symbol_c *last_type_symbol = NULL; |
7605 |
11925 |
7606 { |
11926 { |
7607 identifier_c param_name("IN"); |
11927 identifier_c param_name("IN"); |
7608 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
11928 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
7609 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
11929 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
7610 |
11930 |
7611 /* Get the value from a foo(<param_value>) style call */ |
11931 /* Get the value from a foo(<param_value>) style call */ |
7612 if (IN_param_value == NULL) |
11932 if (IN_param_value == NULL) |
7613 IN_param_value = function_call_param_iterator.next(); |
11933 IN_param_value = function_call_param_iterator.next(); |
7614 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
11934 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
7615 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
11935 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
7616 |
11936 |
7617 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
11937 if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) |
7618 { |
11938 { |
7619 |
11939 |
7620 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
11940 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
7621 return return_type_symbol; |
11941 return return_type_symbol; |
7622 |
11942 |
7623 } |
11943 } |
7624 |
11944 |
7625 ERROR; |
11945 ERROR; |
7626 } |
11946 } |
7627 |
11947 |
7628 }/*function_date_to_byte*/ |
11948 }/*function_ulint_to_bcd*/ |
7629 break; |
11949 break; |
7630 |
11950 |
7631 /**** |
11951 /**** |
7632 *DATE_TO_WORD |
11952 *DATE_AND_TIME_TO_TIME_OF_DAY |
7633 */ |
11953 */ |
7634 case function_date_to_word : |
11954 case function_date_and_time_to_time_of_day : |
7635 { |
11955 { |
7636 symbol_c *last_type_symbol = NULL; |
11956 symbol_c *last_type_symbol = NULL; |
7637 |
11957 |
7638 { |
11958 { |
7639 identifier_c param_name("IN"); |
11959 identifier_c param_name("IN"); |
7640 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
11960 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
7641 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
11961 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
7642 |
11962 |
7643 /* Get the value from a foo(<param_value>) style call */ |
11963 /* Get the value from a foo(<param_value>) style call */ |
7644 if (IN_param_value == NULL) |
11964 if (IN_param_value == NULL) |
7645 IN_param_value = function_call_param_iterator.next(); |
11965 IN_param_value = function_call_param_iterator.next(); |
7646 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
11966 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
7647 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
11967 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
7648 |
11968 |
7649 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
11969 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
7650 { |
|
7651 |
|
7652 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
7653 return return_type_symbol; |
|
7654 |
|
7655 } |
|
7656 |
|
7657 ERROR; |
|
7658 } |
|
7659 |
|
7660 }/*function_date_to_word*/ |
|
7661 break; |
|
7662 |
|
7663 /**** |
|
7664 *DATE_TO_DWORD |
|
7665 */ |
|
7666 case function_date_to_dword : |
|
7667 { |
|
7668 symbol_c *last_type_symbol = NULL; |
|
7669 |
|
7670 { |
|
7671 identifier_c param_name("IN"); |
|
7672 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7673 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7674 |
|
7675 /* Get the value from a foo(<param_value>) style call */ |
|
7676 if (IN_param_value == NULL) |
|
7677 IN_param_value = function_call_param_iterator.next(); |
|
7678 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7679 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7680 |
|
7681 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
|
7682 { |
|
7683 |
|
7684 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
7685 return return_type_symbol; |
|
7686 |
|
7687 } |
|
7688 |
|
7689 ERROR; |
|
7690 } |
|
7691 |
|
7692 }/*function_date_to_dword*/ |
|
7693 break; |
|
7694 |
|
7695 /**** |
|
7696 *DATE_TO_LWORD |
|
7697 */ |
|
7698 case function_date_to_lword : |
|
7699 { |
|
7700 symbol_c *last_type_symbol = NULL; |
|
7701 |
|
7702 { |
|
7703 identifier_c param_name("IN"); |
|
7704 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7705 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7706 |
|
7707 /* Get the value from a foo(<param_value>) style call */ |
|
7708 if (IN_param_value == NULL) |
|
7709 IN_param_value = function_call_param_iterator.next(); |
|
7710 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7711 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7712 |
|
7713 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
|
7714 { |
|
7715 |
|
7716 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
7717 return return_type_symbol; |
|
7718 |
|
7719 } |
|
7720 |
|
7721 ERROR; |
|
7722 } |
|
7723 |
|
7724 }/*function_date_to_lword*/ |
|
7725 break; |
|
7726 |
|
7727 /**** |
|
7728 *TOD_TO_BOOL |
|
7729 */ |
|
7730 case function_tod_to_bool : |
|
7731 { |
|
7732 symbol_c *last_type_symbol = NULL; |
|
7733 |
|
7734 { |
|
7735 identifier_c param_name("IN"); |
|
7736 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7737 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7738 |
|
7739 /* Get the value from a foo(<param_value>) style call */ |
|
7740 if (IN_param_value == NULL) |
|
7741 IN_param_value = function_call_param_iterator.next(); |
|
7742 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7743 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7744 |
|
7745 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
7746 { |
|
7747 |
|
7748 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
7749 return return_type_symbol; |
|
7750 |
|
7751 } |
|
7752 |
|
7753 ERROR; |
|
7754 } |
|
7755 |
|
7756 }/*function_tod_to_bool*/ |
|
7757 break; |
|
7758 |
|
7759 /**** |
|
7760 *TOD_TO_SINT |
|
7761 */ |
|
7762 case function_tod_to_sint : |
|
7763 { |
|
7764 symbol_c *last_type_symbol = NULL; |
|
7765 |
|
7766 { |
|
7767 identifier_c param_name("IN"); |
|
7768 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7769 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7770 |
|
7771 /* Get the value from a foo(<param_value>) style call */ |
|
7772 if (IN_param_value == NULL) |
|
7773 IN_param_value = function_call_param_iterator.next(); |
|
7774 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7775 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7776 |
|
7777 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
7778 { |
|
7779 |
|
7780 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
7781 return return_type_symbol; |
|
7782 |
|
7783 } |
|
7784 |
|
7785 ERROR; |
|
7786 } |
|
7787 |
|
7788 }/*function_tod_to_sint*/ |
|
7789 break; |
|
7790 |
|
7791 /**** |
|
7792 *TOD_TO_INT |
|
7793 */ |
|
7794 case function_tod_to_int : |
|
7795 { |
|
7796 symbol_c *last_type_symbol = NULL; |
|
7797 |
|
7798 { |
|
7799 identifier_c param_name("IN"); |
|
7800 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7801 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7802 |
|
7803 /* Get the value from a foo(<param_value>) style call */ |
|
7804 if (IN_param_value == NULL) |
|
7805 IN_param_value = function_call_param_iterator.next(); |
|
7806 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7807 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7808 |
|
7809 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
7810 { |
|
7811 |
|
7812 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
7813 return return_type_symbol; |
|
7814 |
|
7815 } |
|
7816 |
|
7817 ERROR; |
|
7818 } |
|
7819 |
|
7820 }/*function_tod_to_int*/ |
|
7821 break; |
|
7822 |
|
7823 /**** |
|
7824 *TOD_TO_DINT |
|
7825 */ |
|
7826 case function_tod_to_dint : |
|
7827 { |
|
7828 symbol_c *last_type_symbol = NULL; |
|
7829 |
|
7830 { |
|
7831 identifier_c param_name("IN"); |
|
7832 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7833 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7834 |
|
7835 /* Get the value from a foo(<param_value>) style call */ |
|
7836 if (IN_param_value == NULL) |
|
7837 IN_param_value = function_call_param_iterator.next(); |
|
7838 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7839 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7840 |
|
7841 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
7842 { |
|
7843 |
|
7844 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
7845 return return_type_symbol; |
|
7846 |
|
7847 } |
|
7848 |
|
7849 ERROR; |
|
7850 } |
|
7851 |
|
7852 }/*function_tod_to_dint*/ |
|
7853 break; |
|
7854 |
|
7855 /**** |
|
7856 *TOD_TO_LINT |
|
7857 */ |
|
7858 case function_tod_to_lint : |
|
7859 { |
|
7860 symbol_c *last_type_symbol = NULL; |
|
7861 |
|
7862 { |
|
7863 identifier_c param_name("IN"); |
|
7864 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7865 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7866 |
|
7867 /* Get the value from a foo(<param_value>) style call */ |
|
7868 if (IN_param_value == NULL) |
|
7869 IN_param_value = function_call_param_iterator.next(); |
|
7870 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7871 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7872 |
|
7873 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
7874 { |
|
7875 |
|
7876 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
7877 return return_type_symbol; |
|
7878 |
|
7879 } |
|
7880 |
|
7881 ERROR; |
|
7882 } |
|
7883 |
|
7884 }/*function_tod_to_lint*/ |
|
7885 break; |
|
7886 |
|
7887 /**** |
|
7888 *TOD_TO_USINT |
|
7889 */ |
|
7890 case function_tod_to_usint : |
|
7891 { |
|
7892 symbol_c *last_type_symbol = NULL; |
|
7893 |
|
7894 { |
|
7895 identifier_c param_name("IN"); |
|
7896 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7897 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7898 |
|
7899 /* Get the value from a foo(<param_value>) style call */ |
|
7900 if (IN_param_value == NULL) |
|
7901 IN_param_value = function_call_param_iterator.next(); |
|
7902 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7903 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7904 |
|
7905 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
7906 { |
|
7907 |
|
7908 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
7909 return return_type_symbol; |
|
7910 |
|
7911 } |
|
7912 |
|
7913 ERROR; |
|
7914 } |
|
7915 |
|
7916 }/*function_tod_to_usint*/ |
|
7917 break; |
|
7918 |
|
7919 /**** |
|
7920 *TOD_TO_UINT |
|
7921 */ |
|
7922 case function_tod_to_uint : |
|
7923 { |
|
7924 symbol_c *last_type_symbol = NULL; |
|
7925 |
|
7926 { |
|
7927 identifier_c param_name("IN"); |
|
7928 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7929 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7930 |
|
7931 /* Get the value from a foo(<param_value>) style call */ |
|
7932 if (IN_param_value == NULL) |
|
7933 IN_param_value = function_call_param_iterator.next(); |
|
7934 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7935 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7936 |
|
7937 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
7938 { |
|
7939 |
|
7940 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
7941 return return_type_symbol; |
|
7942 |
|
7943 } |
|
7944 |
|
7945 ERROR; |
|
7946 } |
|
7947 |
|
7948 }/*function_tod_to_uint*/ |
|
7949 break; |
|
7950 |
|
7951 /**** |
|
7952 *TOD_TO_UDINT |
|
7953 */ |
|
7954 case function_tod_to_udint : |
|
7955 { |
|
7956 symbol_c *last_type_symbol = NULL; |
|
7957 |
|
7958 { |
|
7959 identifier_c param_name("IN"); |
|
7960 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7961 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7962 |
|
7963 /* Get the value from a foo(<param_value>) style call */ |
|
7964 if (IN_param_value == NULL) |
|
7965 IN_param_value = function_call_param_iterator.next(); |
|
7966 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7967 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
7968 |
|
7969 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
7970 { |
|
7971 |
|
7972 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
7973 return return_type_symbol; |
|
7974 |
|
7975 } |
|
7976 |
|
7977 ERROR; |
|
7978 } |
|
7979 |
|
7980 }/*function_tod_to_udint*/ |
|
7981 break; |
|
7982 |
|
7983 /**** |
|
7984 *TOD_TO_ULINT |
|
7985 */ |
|
7986 case function_tod_to_ulint : |
|
7987 { |
|
7988 symbol_c *last_type_symbol = NULL; |
|
7989 |
|
7990 { |
|
7991 identifier_c param_name("IN"); |
|
7992 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
7993 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
7994 |
|
7995 /* Get the value from a foo(<param_value>) style call */ |
|
7996 if (IN_param_value == NULL) |
|
7997 IN_param_value = function_call_param_iterator.next(); |
|
7998 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
7999 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8000 |
|
8001 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
8002 { |
|
8003 |
|
8004 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
8005 return return_type_symbol; |
|
8006 |
|
8007 } |
|
8008 |
|
8009 ERROR; |
|
8010 } |
|
8011 |
|
8012 }/*function_tod_to_ulint*/ |
|
8013 break; |
|
8014 |
|
8015 /**** |
|
8016 *TOD_TO_REAL |
|
8017 */ |
|
8018 case function_tod_to_real : |
|
8019 { |
|
8020 symbol_c *last_type_symbol = NULL; |
|
8021 |
|
8022 { |
|
8023 identifier_c param_name("IN"); |
|
8024 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8025 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8026 |
|
8027 /* Get the value from a foo(<param_value>) style call */ |
|
8028 if (IN_param_value == NULL) |
|
8029 IN_param_value = function_call_param_iterator.next(); |
|
8030 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8031 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8032 |
|
8033 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
8034 { |
|
8035 |
|
8036 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
8037 return return_type_symbol; |
|
8038 |
|
8039 } |
|
8040 |
|
8041 ERROR; |
|
8042 } |
|
8043 |
|
8044 }/*function_tod_to_real*/ |
|
8045 break; |
|
8046 |
|
8047 /**** |
|
8048 *TOD_TO_LREAL |
|
8049 */ |
|
8050 case function_tod_to_lreal : |
|
8051 { |
|
8052 symbol_c *last_type_symbol = NULL; |
|
8053 |
|
8054 { |
|
8055 identifier_c param_name("IN"); |
|
8056 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8057 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8058 |
|
8059 /* Get the value from a foo(<param_value>) style call */ |
|
8060 if (IN_param_value == NULL) |
|
8061 IN_param_value = function_call_param_iterator.next(); |
|
8062 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8063 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8064 |
|
8065 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
8066 { |
|
8067 |
|
8068 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
8069 return return_type_symbol; |
|
8070 |
|
8071 } |
|
8072 |
|
8073 ERROR; |
|
8074 } |
|
8075 |
|
8076 }/*function_tod_to_lreal*/ |
|
8077 break; |
|
8078 |
|
8079 /**** |
|
8080 *TOD_TO_STRING |
|
8081 */ |
|
8082 case function_tod_to_string : |
|
8083 { |
|
8084 symbol_c *last_type_symbol = NULL; |
|
8085 |
|
8086 { |
|
8087 identifier_c param_name("IN"); |
|
8088 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8089 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8090 |
|
8091 /* Get the value from a foo(<param_value>) style call */ |
|
8092 if (IN_param_value == NULL) |
|
8093 IN_param_value = function_call_param_iterator.next(); |
|
8094 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8095 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8096 |
|
8097 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
8098 { |
|
8099 |
|
8100 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
8101 return return_type_symbol; |
|
8102 |
|
8103 } |
|
8104 |
|
8105 ERROR; |
|
8106 } |
|
8107 |
|
8108 }/*function_tod_to_string*/ |
|
8109 break; |
|
8110 |
|
8111 /**** |
|
8112 *TOD_TO_BYTE |
|
8113 */ |
|
8114 case function_tod_to_byte : |
|
8115 { |
|
8116 symbol_c *last_type_symbol = NULL; |
|
8117 |
|
8118 { |
|
8119 identifier_c param_name("IN"); |
|
8120 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8121 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8122 |
|
8123 /* Get the value from a foo(<param_value>) style call */ |
|
8124 if (IN_param_value == NULL) |
|
8125 IN_param_value = function_call_param_iterator.next(); |
|
8126 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8127 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8128 |
|
8129 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
8130 { |
|
8131 |
|
8132 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
8133 return return_type_symbol; |
|
8134 |
|
8135 } |
|
8136 |
|
8137 ERROR; |
|
8138 } |
|
8139 |
|
8140 }/*function_tod_to_byte*/ |
|
8141 break; |
|
8142 |
|
8143 /**** |
|
8144 *TOD_TO_WORD |
|
8145 */ |
|
8146 case function_tod_to_word : |
|
8147 { |
|
8148 symbol_c *last_type_symbol = NULL; |
|
8149 |
|
8150 { |
|
8151 identifier_c param_name("IN"); |
|
8152 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8153 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8154 |
|
8155 /* Get the value from a foo(<param_value>) style call */ |
|
8156 if (IN_param_value == NULL) |
|
8157 IN_param_value = function_call_param_iterator.next(); |
|
8158 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8159 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8160 |
|
8161 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
8162 { |
|
8163 |
|
8164 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
8165 return return_type_symbol; |
|
8166 |
|
8167 } |
|
8168 |
|
8169 ERROR; |
|
8170 } |
|
8171 |
|
8172 }/*function_tod_to_word*/ |
|
8173 break; |
|
8174 |
|
8175 /**** |
|
8176 *TOD_TO_DWORD |
|
8177 */ |
|
8178 case function_tod_to_dword : |
|
8179 { |
|
8180 symbol_c *last_type_symbol = NULL; |
|
8181 |
|
8182 { |
|
8183 identifier_c param_name("IN"); |
|
8184 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8185 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8186 |
|
8187 /* Get the value from a foo(<param_value>) style call */ |
|
8188 if (IN_param_value == NULL) |
|
8189 IN_param_value = function_call_param_iterator.next(); |
|
8190 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8191 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8192 |
|
8193 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
8194 { |
|
8195 |
|
8196 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
8197 return return_type_symbol; |
|
8198 |
|
8199 } |
|
8200 |
|
8201 ERROR; |
|
8202 } |
|
8203 |
|
8204 }/*function_tod_to_dword*/ |
|
8205 break; |
|
8206 |
|
8207 /**** |
|
8208 *TOD_TO_LWORD |
|
8209 */ |
|
8210 case function_tod_to_lword : |
|
8211 { |
|
8212 symbol_c *last_type_symbol = NULL; |
|
8213 |
|
8214 { |
|
8215 identifier_c param_name("IN"); |
|
8216 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8217 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8218 |
|
8219 /* Get the value from a foo(<param_value>) style call */ |
|
8220 if (IN_param_value == NULL) |
|
8221 IN_param_value = function_call_param_iterator.next(); |
|
8222 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8223 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8224 |
|
8225 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
8226 { |
|
8227 |
|
8228 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
8229 return return_type_symbol; |
|
8230 |
|
8231 } |
|
8232 |
|
8233 ERROR; |
|
8234 } |
|
8235 |
|
8236 }/*function_tod_to_lword*/ |
|
8237 break; |
|
8238 |
|
8239 /**** |
|
8240 *DT_TO_BOOL |
|
8241 */ |
|
8242 case function_dt_to_bool : |
|
8243 { |
|
8244 symbol_c *last_type_symbol = NULL; |
|
8245 |
|
8246 { |
|
8247 identifier_c param_name("IN"); |
|
8248 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8249 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8250 |
|
8251 /* Get the value from a foo(<param_value>) style call */ |
|
8252 if (IN_param_value == NULL) |
|
8253 IN_param_value = function_call_param_iterator.next(); |
|
8254 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8255 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8256 |
|
8257 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
8258 { |
|
8259 |
|
8260 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
8261 return return_type_symbol; |
|
8262 |
|
8263 } |
|
8264 |
|
8265 ERROR; |
|
8266 } |
|
8267 |
|
8268 }/*function_dt_to_bool*/ |
|
8269 break; |
|
8270 |
|
8271 /**** |
|
8272 *DT_TO_SINT |
|
8273 */ |
|
8274 case function_dt_to_sint : |
|
8275 { |
|
8276 symbol_c *last_type_symbol = NULL; |
|
8277 |
|
8278 { |
|
8279 identifier_c param_name("IN"); |
|
8280 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8281 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8282 |
|
8283 /* Get the value from a foo(<param_value>) style call */ |
|
8284 if (IN_param_value == NULL) |
|
8285 IN_param_value = function_call_param_iterator.next(); |
|
8286 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8287 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8288 |
|
8289 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
8290 { |
|
8291 |
|
8292 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
8293 return return_type_symbol; |
|
8294 |
|
8295 } |
|
8296 |
|
8297 ERROR; |
|
8298 } |
|
8299 |
|
8300 }/*function_dt_to_sint*/ |
|
8301 break; |
|
8302 |
|
8303 /**** |
|
8304 *DT_TO_INT |
|
8305 */ |
|
8306 case function_dt_to_int : |
|
8307 { |
|
8308 symbol_c *last_type_symbol = NULL; |
|
8309 |
|
8310 { |
|
8311 identifier_c param_name("IN"); |
|
8312 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8313 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8314 |
|
8315 /* Get the value from a foo(<param_value>) style call */ |
|
8316 if (IN_param_value == NULL) |
|
8317 IN_param_value = function_call_param_iterator.next(); |
|
8318 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8319 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8320 |
|
8321 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
8322 { |
|
8323 |
|
8324 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
8325 return return_type_symbol; |
|
8326 |
|
8327 } |
|
8328 |
|
8329 ERROR; |
|
8330 } |
|
8331 |
|
8332 }/*function_dt_to_int*/ |
|
8333 break; |
|
8334 |
|
8335 /**** |
|
8336 *DT_TO_DINT |
|
8337 */ |
|
8338 case function_dt_to_dint : |
|
8339 { |
|
8340 symbol_c *last_type_symbol = NULL; |
|
8341 |
|
8342 { |
|
8343 identifier_c param_name("IN"); |
|
8344 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8345 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8346 |
|
8347 /* Get the value from a foo(<param_value>) style call */ |
|
8348 if (IN_param_value == NULL) |
|
8349 IN_param_value = function_call_param_iterator.next(); |
|
8350 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8351 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8352 |
|
8353 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
8354 { |
|
8355 |
|
8356 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
8357 return return_type_symbol; |
|
8358 |
|
8359 } |
|
8360 |
|
8361 ERROR; |
|
8362 } |
|
8363 |
|
8364 }/*function_dt_to_dint*/ |
|
8365 break; |
|
8366 |
|
8367 /**** |
|
8368 *DT_TO_LINT |
|
8369 */ |
|
8370 case function_dt_to_lint : |
|
8371 { |
|
8372 symbol_c *last_type_symbol = NULL; |
|
8373 |
|
8374 { |
|
8375 identifier_c param_name("IN"); |
|
8376 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8377 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8378 |
|
8379 /* Get the value from a foo(<param_value>) style call */ |
|
8380 if (IN_param_value == NULL) |
|
8381 IN_param_value = function_call_param_iterator.next(); |
|
8382 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8383 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8384 |
|
8385 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
8386 { |
|
8387 |
|
8388 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
8389 return return_type_symbol; |
|
8390 |
|
8391 } |
|
8392 |
|
8393 ERROR; |
|
8394 } |
|
8395 |
|
8396 }/*function_dt_to_lint*/ |
|
8397 break; |
|
8398 |
|
8399 /**** |
|
8400 *DT_TO_USINT |
|
8401 */ |
|
8402 case function_dt_to_usint : |
|
8403 { |
|
8404 symbol_c *last_type_symbol = NULL; |
|
8405 |
|
8406 { |
|
8407 identifier_c param_name("IN"); |
|
8408 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8409 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8410 |
|
8411 /* Get the value from a foo(<param_value>) style call */ |
|
8412 if (IN_param_value == NULL) |
|
8413 IN_param_value = function_call_param_iterator.next(); |
|
8414 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8415 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8416 |
|
8417 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
8418 { |
|
8419 |
|
8420 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
8421 return return_type_symbol; |
|
8422 |
|
8423 } |
|
8424 |
|
8425 ERROR; |
|
8426 } |
|
8427 |
|
8428 }/*function_dt_to_usint*/ |
|
8429 break; |
|
8430 |
|
8431 /**** |
|
8432 *DT_TO_UINT |
|
8433 */ |
|
8434 case function_dt_to_uint : |
|
8435 { |
|
8436 symbol_c *last_type_symbol = NULL; |
|
8437 |
|
8438 { |
|
8439 identifier_c param_name("IN"); |
|
8440 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8441 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8442 |
|
8443 /* Get the value from a foo(<param_value>) style call */ |
|
8444 if (IN_param_value == NULL) |
|
8445 IN_param_value = function_call_param_iterator.next(); |
|
8446 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8447 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8448 |
|
8449 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
8450 { |
|
8451 |
|
8452 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
8453 return return_type_symbol; |
|
8454 |
|
8455 } |
|
8456 |
|
8457 ERROR; |
|
8458 } |
|
8459 |
|
8460 }/*function_dt_to_uint*/ |
|
8461 break; |
|
8462 |
|
8463 /**** |
|
8464 *DT_TO_UDINT |
|
8465 */ |
|
8466 case function_dt_to_udint : |
|
8467 { |
|
8468 symbol_c *last_type_symbol = NULL; |
|
8469 |
|
8470 { |
|
8471 identifier_c param_name("IN"); |
|
8472 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8473 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8474 |
|
8475 /* Get the value from a foo(<param_value>) style call */ |
|
8476 if (IN_param_value == NULL) |
|
8477 IN_param_value = function_call_param_iterator.next(); |
|
8478 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8479 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8480 |
|
8481 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
8482 { |
|
8483 |
|
8484 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
8485 return return_type_symbol; |
|
8486 |
|
8487 } |
|
8488 |
|
8489 ERROR; |
|
8490 } |
|
8491 |
|
8492 }/*function_dt_to_udint*/ |
|
8493 break; |
|
8494 |
|
8495 /**** |
|
8496 *DT_TO_ULINT |
|
8497 */ |
|
8498 case function_dt_to_ulint : |
|
8499 { |
|
8500 symbol_c *last_type_symbol = NULL; |
|
8501 |
|
8502 { |
|
8503 identifier_c param_name("IN"); |
|
8504 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8505 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8506 |
|
8507 /* Get the value from a foo(<param_value>) style call */ |
|
8508 if (IN_param_value == NULL) |
|
8509 IN_param_value = function_call_param_iterator.next(); |
|
8510 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8511 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8512 |
|
8513 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
8514 { |
|
8515 |
|
8516 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
8517 return return_type_symbol; |
|
8518 |
|
8519 } |
|
8520 |
|
8521 ERROR; |
|
8522 } |
|
8523 |
|
8524 }/*function_dt_to_ulint*/ |
|
8525 break; |
|
8526 |
|
8527 /**** |
|
8528 *DT_TO_REAL |
|
8529 */ |
|
8530 case function_dt_to_real : |
|
8531 { |
|
8532 symbol_c *last_type_symbol = NULL; |
|
8533 |
|
8534 { |
|
8535 identifier_c param_name("IN"); |
|
8536 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8537 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8538 |
|
8539 /* Get the value from a foo(<param_value>) style call */ |
|
8540 if (IN_param_value == NULL) |
|
8541 IN_param_value = function_call_param_iterator.next(); |
|
8542 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8543 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8544 |
|
8545 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
8546 { |
|
8547 |
|
8548 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
8549 return return_type_symbol; |
|
8550 |
|
8551 } |
|
8552 |
|
8553 ERROR; |
|
8554 } |
|
8555 |
|
8556 }/*function_dt_to_real*/ |
|
8557 break; |
|
8558 |
|
8559 /**** |
|
8560 *DT_TO_LREAL |
|
8561 */ |
|
8562 case function_dt_to_lreal : |
|
8563 { |
|
8564 symbol_c *last_type_symbol = NULL; |
|
8565 |
|
8566 { |
|
8567 identifier_c param_name("IN"); |
|
8568 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8569 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8570 |
|
8571 /* Get the value from a foo(<param_value>) style call */ |
|
8572 if (IN_param_value == NULL) |
|
8573 IN_param_value = function_call_param_iterator.next(); |
|
8574 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8575 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8576 |
|
8577 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
8578 { |
|
8579 |
|
8580 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
8581 return return_type_symbol; |
|
8582 |
|
8583 } |
|
8584 |
|
8585 ERROR; |
|
8586 } |
|
8587 |
|
8588 }/*function_dt_to_lreal*/ |
|
8589 break; |
|
8590 |
|
8591 /**** |
|
8592 *DT_TO_STRING |
|
8593 */ |
|
8594 case function_dt_to_string : |
|
8595 { |
|
8596 symbol_c *last_type_symbol = NULL; |
|
8597 |
|
8598 { |
|
8599 identifier_c param_name("IN"); |
|
8600 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8601 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8602 |
|
8603 /* Get the value from a foo(<param_value>) style call */ |
|
8604 if (IN_param_value == NULL) |
|
8605 IN_param_value = function_call_param_iterator.next(); |
|
8606 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8607 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8608 |
|
8609 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
8610 { |
|
8611 |
|
8612 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
8613 return return_type_symbol; |
|
8614 |
|
8615 } |
|
8616 |
|
8617 ERROR; |
|
8618 } |
|
8619 |
|
8620 }/*function_dt_to_string*/ |
|
8621 break; |
|
8622 |
|
8623 /**** |
|
8624 *DT_TO_BYTE |
|
8625 */ |
|
8626 case function_dt_to_byte : |
|
8627 { |
|
8628 symbol_c *last_type_symbol = NULL; |
|
8629 |
|
8630 { |
|
8631 identifier_c param_name("IN"); |
|
8632 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8633 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8634 |
|
8635 /* Get the value from a foo(<param_value>) style call */ |
|
8636 if (IN_param_value == NULL) |
|
8637 IN_param_value = function_call_param_iterator.next(); |
|
8638 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8639 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8640 |
|
8641 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
8642 { |
|
8643 |
|
8644 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
8645 return return_type_symbol; |
|
8646 |
|
8647 } |
|
8648 |
|
8649 ERROR; |
|
8650 } |
|
8651 |
|
8652 }/*function_dt_to_byte*/ |
|
8653 break; |
|
8654 |
|
8655 /**** |
|
8656 *DT_TO_WORD |
|
8657 */ |
|
8658 case function_dt_to_word : |
|
8659 { |
|
8660 symbol_c *last_type_symbol = NULL; |
|
8661 |
|
8662 { |
|
8663 identifier_c param_name("IN"); |
|
8664 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8665 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8666 |
|
8667 /* Get the value from a foo(<param_value>) style call */ |
|
8668 if (IN_param_value == NULL) |
|
8669 IN_param_value = function_call_param_iterator.next(); |
|
8670 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8671 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8672 |
|
8673 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
8674 { |
|
8675 |
|
8676 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
8677 return return_type_symbol; |
|
8678 |
|
8679 } |
|
8680 |
|
8681 ERROR; |
|
8682 } |
|
8683 |
|
8684 }/*function_dt_to_word*/ |
|
8685 break; |
|
8686 |
|
8687 /**** |
|
8688 *DT_TO_DWORD |
|
8689 */ |
|
8690 case function_dt_to_dword : |
|
8691 { |
|
8692 symbol_c *last_type_symbol = NULL; |
|
8693 |
|
8694 { |
|
8695 identifier_c param_name("IN"); |
|
8696 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8697 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8698 |
|
8699 /* Get the value from a foo(<param_value>) style call */ |
|
8700 if (IN_param_value == NULL) |
|
8701 IN_param_value = function_call_param_iterator.next(); |
|
8702 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8703 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8704 |
|
8705 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
8706 { |
|
8707 |
|
8708 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
8709 return return_type_symbol; |
|
8710 |
|
8711 } |
|
8712 |
|
8713 ERROR; |
|
8714 } |
|
8715 |
|
8716 }/*function_dt_to_dword*/ |
|
8717 break; |
|
8718 |
|
8719 /**** |
|
8720 *DT_TO_LWORD |
|
8721 */ |
|
8722 case function_dt_to_lword : |
|
8723 { |
|
8724 symbol_c *last_type_symbol = NULL; |
|
8725 |
|
8726 { |
|
8727 identifier_c param_name("IN"); |
|
8728 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8729 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8730 |
|
8731 /* Get the value from a foo(<param_value>) style call */ |
|
8732 if (IN_param_value == NULL) |
|
8733 IN_param_value = function_call_param_iterator.next(); |
|
8734 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8735 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8736 |
|
8737 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
8738 { |
|
8739 |
|
8740 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
8741 return return_type_symbol; |
|
8742 |
|
8743 } |
|
8744 |
|
8745 ERROR; |
|
8746 } |
|
8747 |
|
8748 }/*function_dt_to_lword*/ |
|
8749 break; |
|
8750 |
|
8751 /**** |
|
8752 *STRING_TO_BOOL |
|
8753 */ |
|
8754 case function_string_to_bool : |
|
8755 { |
|
8756 symbol_c *last_type_symbol = NULL; |
|
8757 |
|
8758 { |
|
8759 identifier_c param_name("IN"); |
|
8760 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8761 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8762 |
|
8763 /* Get the value from a foo(<param_value>) style call */ |
|
8764 if (IN_param_value == NULL) |
|
8765 IN_param_value = function_call_param_iterator.next(); |
|
8766 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8767 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8768 |
|
8769 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
8770 { |
|
8771 |
|
8772 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
8773 return return_type_symbol; |
|
8774 |
|
8775 } |
|
8776 |
|
8777 ERROR; |
|
8778 } |
|
8779 |
|
8780 }/*function_string_to_bool*/ |
|
8781 break; |
|
8782 |
|
8783 /**** |
|
8784 *STRING_TO_SINT |
|
8785 */ |
|
8786 case function_string_to_sint : |
|
8787 { |
|
8788 symbol_c *last_type_symbol = NULL; |
|
8789 |
|
8790 { |
|
8791 identifier_c param_name("IN"); |
|
8792 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8793 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8794 |
|
8795 /* Get the value from a foo(<param_value>) style call */ |
|
8796 if (IN_param_value == NULL) |
|
8797 IN_param_value = function_call_param_iterator.next(); |
|
8798 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8799 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8800 |
|
8801 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
8802 { |
|
8803 |
|
8804 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
8805 return return_type_symbol; |
|
8806 |
|
8807 } |
|
8808 |
|
8809 ERROR; |
|
8810 } |
|
8811 |
|
8812 }/*function_string_to_sint*/ |
|
8813 break; |
|
8814 |
|
8815 /**** |
|
8816 *STRING_TO_INT |
|
8817 */ |
|
8818 case function_string_to_int : |
|
8819 { |
|
8820 symbol_c *last_type_symbol = NULL; |
|
8821 |
|
8822 { |
|
8823 identifier_c param_name("IN"); |
|
8824 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8825 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8826 |
|
8827 /* Get the value from a foo(<param_value>) style call */ |
|
8828 if (IN_param_value == NULL) |
|
8829 IN_param_value = function_call_param_iterator.next(); |
|
8830 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8831 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8832 |
|
8833 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
8834 { |
|
8835 |
|
8836 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
8837 return return_type_symbol; |
|
8838 |
|
8839 } |
|
8840 |
|
8841 ERROR; |
|
8842 } |
|
8843 |
|
8844 }/*function_string_to_int*/ |
|
8845 break; |
|
8846 |
|
8847 /**** |
|
8848 *STRING_TO_DINT |
|
8849 */ |
|
8850 case function_string_to_dint : |
|
8851 { |
|
8852 symbol_c *last_type_symbol = NULL; |
|
8853 |
|
8854 { |
|
8855 identifier_c param_name("IN"); |
|
8856 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8857 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8858 |
|
8859 /* Get the value from a foo(<param_value>) style call */ |
|
8860 if (IN_param_value == NULL) |
|
8861 IN_param_value = function_call_param_iterator.next(); |
|
8862 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8863 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8864 |
|
8865 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
8866 { |
|
8867 |
|
8868 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
8869 return return_type_symbol; |
|
8870 |
|
8871 } |
|
8872 |
|
8873 ERROR; |
|
8874 } |
|
8875 |
|
8876 }/*function_string_to_dint*/ |
|
8877 break; |
|
8878 |
|
8879 /**** |
|
8880 *STRING_TO_LINT |
|
8881 */ |
|
8882 case function_string_to_lint : |
|
8883 { |
|
8884 symbol_c *last_type_symbol = NULL; |
|
8885 |
|
8886 { |
|
8887 identifier_c param_name("IN"); |
|
8888 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8889 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8890 |
|
8891 /* Get the value from a foo(<param_value>) style call */ |
|
8892 if (IN_param_value == NULL) |
|
8893 IN_param_value = function_call_param_iterator.next(); |
|
8894 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8895 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8896 |
|
8897 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
8898 { |
|
8899 |
|
8900 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
8901 return return_type_symbol; |
|
8902 |
|
8903 } |
|
8904 |
|
8905 ERROR; |
|
8906 } |
|
8907 |
|
8908 }/*function_string_to_lint*/ |
|
8909 break; |
|
8910 |
|
8911 /**** |
|
8912 *STRING_TO_USINT |
|
8913 */ |
|
8914 case function_string_to_usint : |
|
8915 { |
|
8916 symbol_c *last_type_symbol = NULL; |
|
8917 |
|
8918 { |
|
8919 identifier_c param_name("IN"); |
|
8920 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8921 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8922 |
|
8923 /* Get the value from a foo(<param_value>) style call */ |
|
8924 if (IN_param_value == NULL) |
|
8925 IN_param_value = function_call_param_iterator.next(); |
|
8926 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8927 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8928 |
|
8929 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
8930 { |
|
8931 |
|
8932 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
8933 return return_type_symbol; |
|
8934 |
|
8935 } |
|
8936 |
|
8937 ERROR; |
|
8938 } |
|
8939 |
|
8940 }/*function_string_to_usint*/ |
|
8941 break; |
|
8942 |
|
8943 /**** |
|
8944 *STRING_TO_UINT |
|
8945 */ |
|
8946 case function_string_to_uint : |
|
8947 { |
|
8948 symbol_c *last_type_symbol = NULL; |
|
8949 |
|
8950 { |
|
8951 identifier_c param_name("IN"); |
|
8952 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8953 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8954 |
|
8955 /* Get the value from a foo(<param_value>) style call */ |
|
8956 if (IN_param_value == NULL) |
|
8957 IN_param_value = function_call_param_iterator.next(); |
|
8958 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8959 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8960 |
|
8961 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
8962 { |
|
8963 |
|
8964 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
8965 return return_type_symbol; |
|
8966 |
|
8967 } |
|
8968 |
|
8969 ERROR; |
|
8970 } |
|
8971 |
|
8972 }/*function_string_to_uint*/ |
|
8973 break; |
|
8974 |
|
8975 /**** |
|
8976 *STRING_TO_UDINT |
|
8977 */ |
|
8978 case function_string_to_udint : |
|
8979 { |
|
8980 symbol_c *last_type_symbol = NULL; |
|
8981 |
|
8982 { |
|
8983 identifier_c param_name("IN"); |
|
8984 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
8985 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
8986 |
|
8987 /* Get the value from a foo(<param_value>) style call */ |
|
8988 if (IN_param_value == NULL) |
|
8989 IN_param_value = function_call_param_iterator.next(); |
|
8990 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
8991 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
8992 |
|
8993 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
8994 { |
|
8995 |
|
8996 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
8997 return return_type_symbol; |
|
8998 |
|
8999 } |
|
9000 |
|
9001 ERROR; |
|
9002 } |
|
9003 |
|
9004 }/*function_string_to_udint*/ |
|
9005 break; |
|
9006 |
|
9007 /**** |
|
9008 *STRING_TO_ULINT |
|
9009 */ |
|
9010 case function_string_to_ulint : |
|
9011 { |
|
9012 symbol_c *last_type_symbol = NULL; |
|
9013 |
|
9014 { |
|
9015 identifier_c param_name("IN"); |
|
9016 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9017 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9018 |
|
9019 /* Get the value from a foo(<param_value>) style call */ |
|
9020 if (IN_param_value == NULL) |
|
9021 IN_param_value = function_call_param_iterator.next(); |
|
9022 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9023 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9024 |
|
9025 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
9026 { |
|
9027 |
|
9028 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
9029 return return_type_symbol; |
|
9030 |
|
9031 } |
|
9032 |
|
9033 ERROR; |
|
9034 } |
|
9035 |
|
9036 }/*function_string_to_ulint*/ |
|
9037 break; |
|
9038 |
|
9039 /**** |
|
9040 *STRING_TO_REAL |
|
9041 */ |
|
9042 case function_string_to_real : |
|
9043 { |
|
9044 symbol_c *last_type_symbol = NULL; |
|
9045 |
|
9046 { |
|
9047 identifier_c param_name("IN"); |
|
9048 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9049 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9050 |
|
9051 /* Get the value from a foo(<param_value>) style call */ |
|
9052 if (IN_param_value == NULL) |
|
9053 IN_param_value = function_call_param_iterator.next(); |
|
9054 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9055 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9056 |
|
9057 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
9058 { |
|
9059 |
|
9060 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
9061 return return_type_symbol; |
|
9062 |
|
9063 } |
|
9064 |
|
9065 ERROR; |
|
9066 } |
|
9067 |
|
9068 }/*function_string_to_real*/ |
|
9069 break; |
|
9070 |
|
9071 /**** |
|
9072 *STRING_TO_LREAL |
|
9073 */ |
|
9074 case function_string_to_lreal : |
|
9075 { |
|
9076 symbol_c *last_type_symbol = NULL; |
|
9077 |
|
9078 { |
|
9079 identifier_c param_name("IN"); |
|
9080 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9081 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9082 |
|
9083 /* Get the value from a foo(<param_value>) style call */ |
|
9084 if (IN_param_value == NULL) |
|
9085 IN_param_value = function_call_param_iterator.next(); |
|
9086 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9087 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9088 |
|
9089 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
9090 { |
|
9091 |
|
9092 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
9093 return return_type_symbol; |
|
9094 |
|
9095 } |
|
9096 |
|
9097 ERROR; |
|
9098 } |
|
9099 |
|
9100 }/*function_string_to_lreal*/ |
|
9101 break; |
|
9102 |
|
9103 /**** |
|
9104 *STRING_TO_TIME |
|
9105 */ |
|
9106 case function_string_to_time : |
|
9107 { |
|
9108 symbol_c *last_type_symbol = NULL; |
|
9109 |
|
9110 { |
|
9111 identifier_c param_name("IN"); |
|
9112 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9113 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9114 |
|
9115 /* Get the value from a foo(<param_value>) style call */ |
|
9116 if (IN_param_value == NULL) |
|
9117 IN_param_value = function_call_param_iterator.next(); |
|
9118 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9119 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9120 |
|
9121 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
9122 { |
|
9123 |
|
9124 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
9125 return return_type_symbol; |
|
9126 |
|
9127 } |
|
9128 |
|
9129 ERROR; |
|
9130 } |
|
9131 |
|
9132 }/*function_string_to_time*/ |
|
9133 break; |
|
9134 |
|
9135 /**** |
|
9136 *STRING_TO_DATE |
|
9137 */ |
|
9138 case function_string_to_date : |
|
9139 { |
|
9140 symbol_c *last_type_symbol = NULL; |
|
9141 |
|
9142 { |
|
9143 identifier_c param_name("IN"); |
|
9144 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9145 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9146 |
|
9147 /* Get the value from a foo(<param_value>) style call */ |
|
9148 if (IN_param_value == NULL) |
|
9149 IN_param_value = function_call_param_iterator.next(); |
|
9150 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9151 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9152 |
|
9153 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
9154 { |
|
9155 |
|
9156 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
9157 return return_type_symbol; |
|
9158 |
|
9159 } |
|
9160 |
|
9161 ERROR; |
|
9162 } |
|
9163 |
|
9164 }/*function_string_to_date*/ |
|
9165 break; |
|
9166 |
|
9167 /**** |
|
9168 *STRING_TO_TOD |
|
9169 */ |
|
9170 case function_string_to_tod : |
|
9171 { |
|
9172 symbol_c *last_type_symbol = NULL; |
|
9173 |
|
9174 { |
|
9175 identifier_c param_name("IN"); |
|
9176 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9177 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9178 |
|
9179 /* Get the value from a foo(<param_value>) style call */ |
|
9180 if (IN_param_value == NULL) |
|
9181 IN_param_value = function_call_param_iterator.next(); |
|
9182 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9183 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9184 |
|
9185 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
9186 { |
11970 { |
9187 |
11971 |
9188 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
11972 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
9189 return return_type_symbol; |
11973 return return_type_symbol; |
9190 |
11974 |
9191 } |
11975 } |
9192 |
11976 |
9193 ERROR; |
11977 ERROR; |
9194 } |
11978 } |
9195 |
11979 |
9196 }/*function_string_to_tod*/ |
|
9197 break; |
|
9198 |
|
9199 /**** |
|
9200 *STRING_TO_DT |
|
9201 */ |
|
9202 case function_string_to_dt : |
|
9203 { |
|
9204 symbol_c *last_type_symbol = NULL; |
|
9205 |
|
9206 { |
|
9207 identifier_c param_name("IN"); |
|
9208 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9209 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9210 |
|
9211 /* Get the value from a foo(<param_value>) style call */ |
|
9212 if (IN_param_value == NULL) |
|
9213 IN_param_value = function_call_param_iterator.next(); |
|
9214 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9215 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9216 |
|
9217 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
9218 { |
|
9219 |
|
9220 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
9221 return return_type_symbol; |
|
9222 |
|
9223 } |
|
9224 |
|
9225 ERROR; |
|
9226 } |
|
9227 |
|
9228 }/*function_string_to_dt*/ |
|
9229 break; |
|
9230 |
|
9231 /**** |
|
9232 *STRING_TO_BYTE |
|
9233 */ |
|
9234 case function_string_to_byte : |
|
9235 { |
|
9236 symbol_c *last_type_symbol = NULL; |
|
9237 |
|
9238 { |
|
9239 identifier_c param_name("IN"); |
|
9240 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9241 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9242 |
|
9243 /* Get the value from a foo(<param_value>) style call */ |
|
9244 if (IN_param_value == NULL) |
|
9245 IN_param_value = function_call_param_iterator.next(); |
|
9246 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9247 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9248 |
|
9249 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
9250 { |
|
9251 |
|
9252 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
9253 return return_type_symbol; |
|
9254 |
|
9255 } |
|
9256 |
|
9257 ERROR; |
|
9258 } |
|
9259 |
|
9260 }/*function_string_to_byte*/ |
|
9261 break; |
|
9262 |
|
9263 /**** |
|
9264 *STRING_TO_WORD |
|
9265 */ |
|
9266 case function_string_to_word : |
|
9267 { |
|
9268 symbol_c *last_type_symbol = NULL; |
|
9269 |
|
9270 { |
|
9271 identifier_c param_name("IN"); |
|
9272 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9273 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9274 |
|
9275 /* Get the value from a foo(<param_value>) style call */ |
|
9276 if (IN_param_value == NULL) |
|
9277 IN_param_value = function_call_param_iterator.next(); |
|
9278 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9279 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9280 |
|
9281 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
9282 { |
|
9283 |
|
9284 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
9285 return return_type_symbol; |
|
9286 |
|
9287 } |
|
9288 |
|
9289 ERROR; |
|
9290 } |
|
9291 |
|
9292 }/*function_string_to_word*/ |
|
9293 break; |
|
9294 |
|
9295 /**** |
|
9296 *STRING_TO_DWORD |
|
9297 */ |
|
9298 case function_string_to_dword : |
|
9299 { |
|
9300 symbol_c *last_type_symbol = NULL; |
|
9301 |
|
9302 { |
|
9303 identifier_c param_name("IN"); |
|
9304 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9305 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9306 |
|
9307 /* Get the value from a foo(<param_value>) style call */ |
|
9308 if (IN_param_value == NULL) |
|
9309 IN_param_value = function_call_param_iterator.next(); |
|
9310 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9311 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9312 |
|
9313 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
9314 { |
|
9315 |
|
9316 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
9317 return return_type_symbol; |
|
9318 |
|
9319 } |
|
9320 |
|
9321 ERROR; |
|
9322 } |
|
9323 |
|
9324 }/*function_string_to_dword*/ |
|
9325 break; |
|
9326 |
|
9327 /**** |
|
9328 *STRING_TO_LWORD |
|
9329 */ |
|
9330 case function_string_to_lword : |
|
9331 { |
|
9332 symbol_c *last_type_symbol = NULL; |
|
9333 |
|
9334 { |
|
9335 identifier_c param_name("IN"); |
|
9336 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9337 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9338 |
|
9339 /* Get the value from a foo(<param_value>) style call */ |
|
9340 if (IN_param_value == NULL) |
|
9341 IN_param_value = function_call_param_iterator.next(); |
|
9342 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9343 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9344 |
|
9345 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
9346 { |
|
9347 |
|
9348 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
9349 return return_type_symbol; |
|
9350 |
|
9351 } |
|
9352 |
|
9353 ERROR; |
|
9354 } |
|
9355 |
|
9356 }/*function_string_to_lword*/ |
|
9357 break; |
|
9358 |
|
9359 /**** |
|
9360 *BYTE_TO_BOOL |
|
9361 */ |
|
9362 case function_byte_to_bool : |
|
9363 { |
|
9364 symbol_c *last_type_symbol = NULL; |
|
9365 |
|
9366 { |
|
9367 identifier_c param_name("IN"); |
|
9368 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9369 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9370 |
|
9371 /* Get the value from a foo(<param_value>) style call */ |
|
9372 if (IN_param_value == NULL) |
|
9373 IN_param_value = function_call_param_iterator.next(); |
|
9374 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9375 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9376 |
|
9377 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9378 { |
|
9379 |
|
9380 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
9381 return return_type_symbol; |
|
9382 |
|
9383 } |
|
9384 |
|
9385 ERROR; |
|
9386 } |
|
9387 |
|
9388 }/*function_byte_to_bool*/ |
|
9389 break; |
|
9390 |
|
9391 /**** |
|
9392 *BYTE_TO_SINT |
|
9393 */ |
|
9394 case function_byte_to_sint : |
|
9395 { |
|
9396 symbol_c *last_type_symbol = NULL; |
|
9397 |
|
9398 { |
|
9399 identifier_c param_name("IN"); |
|
9400 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9401 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9402 |
|
9403 /* Get the value from a foo(<param_value>) style call */ |
|
9404 if (IN_param_value == NULL) |
|
9405 IN_param_value = function_call_param_iterator.next(); |
|
9406 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9407 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9408 |
|
9409 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9410 { |
|
9411 |
|
9412 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
9413 return return_type_symbol; |
|
9414 |
|
9415 } |
|
9416 |
|
9417 ERROR; |
|
9418 } |
|
9419 |
|
9420 }/*function_byte_to_sint*/ |
|
9421 break; |
|
9422 |
|
9423 /**** |
|
9424 *BYTE_TO_INT |
|
9425 */ |
|
9426 case function_byte_to_int : |
|
9427 { |
|
9428 symbol_c *last_type_symbol = NULL; |
|
9429 |
|
9430 { |
|
9431 identifier_c param_name("IN"); |
|
9432 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9433 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9434 |
|
9435 /* Get the value from a foo(<param_value>) style call */ |
|
9436 if (IN_param_value == NULL) |
|
9437 IN_param_value = function_call_param_iterator.next(); |
|
9438 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9439 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9440 |
|
9441 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9442 { |
|
9443 |
|
9444 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
9445 return return_type_symbol; |
|
9446 |
|
9447 } |
|
9448 |
|
9449 ERROR; |
|
9450 } |
|
9451 |
|
9452 }/*function_byte_to_int*/ |
|
9453 break; |
|
9454 |
|
9455 /**** |
|
9456 *BYTE_TO_DINT |
|
9457 */ |
|
9458 case function_byte_to_dint : |
|
9459 { |
|
9460 symbol_c *last_type_symbol = NULL; |
|
9461 |
|
9462 { |
|
9463 identifier_c param_name("IN"); |
|
9464 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9465 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9466 |
|
9467 /* Get the value from a foo(<param_value>) style call */ |
|
9468 if (IN_param_value == NULL) |
|
9469 IN_param_value = function_call_param_iterator.next(); |
|
9470 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9471 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9472 |
|
9473 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9474 { |
|
9475 |
|
9476 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
9477 return return_type_symbol; |
|
9478 |
|
9479 } |
|
9480 |
|
9481 ERROR; |
|
9482 } |
|
9483 |
|
9484 }/*function_byte_to_dint*/ |
|
9485 break; |
|
9486 |
|
9487 /**** |
|
9488 *BYTE_TO_LINT |
|
9489 */ |
|
9490 case function_byte_to_lint : |
|
9491 { |
|
9492 symbol_c *last_type_symbol = NULL; |
|
9493 |
|
9494 { |
|
9495 identifier_c param_name("IN"); |
|
9496 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9497 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9498 |
|
9499 /* Get the value from a foo(<param_value>) style call */ |
|
9500 if (IN_param_value == NULL) |
|
9501 IN_param_value = function_call_param_iterator.next(); |
|
9502 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9503 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9504 |
|
9505 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9506 { |
|
9507 |
|
9508 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
9509 return return_type_symbol; |
|
9510 |
|
9511 } |
|
9512 |
|
9513 ERROR; |
|
9514 } |
|
9515 |
|
9516 }/*function_byte_to_lint*/ |
|
9517 break; |
|
9518 |
|
9519 /**** |
|
9520 *BYTE_TO_USINT |
|
9521 */ |
|
9522 case function_byte_to_usint : |
|
9523 { |
|
9524 symbol_c *last_type_symbol = NULL; |
|
9525 |
|
9526 { |
|
9527 identifier_c param_name("IN"); |
|
9528 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9529 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9530 |
|
9531 /* Get the value from a foo(<param_value>) style call */ |
|
9532 if (IN_param_value == NULL) |
|
9533 IN_param_value = function_call_param_iterator.next(); |
|
9534 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9535 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9536 |
|
9537 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9538 { |
|
9539 |
|
9540 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
9541 return return_type_symbol; |
|
9542 |
|
9543 } |
|
9544 |
|
9545 ERROR; |
|
9546 } |
|
9547 |
|
9548 }/*function_byte_to_usint*/ |
|
9549 break; |
|
9550 |
|
9551 /**** |
|
9552 *BYTE_TO_UINT |
|
9553 */ |
|
9554 case function_byte_to_uint : |
|
9555 { |
|
9556 symbol_c *last_type_symbol = NULL; |
|
9557 |
|
9558 { |
|
9559 identifier_c param_name("IN"); |
|
9560 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9561 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9562 |
|
9563 /* Get the value from a foo(<param_value>) style call */ |
|
9564 if (IN_param_value == NULL) |
|
9565 IN_param_value = function_call_param_iterator.next(); |
|
9566 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9567 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9568 |
|
9569 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9570 { |
|
9571 |
|
9572 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
9573 return return_type_symbol; |
|
9574 |
|
9575 } |
|
9576 |
|
9577 ERROR; |
|
9578 } |
|
9579 |
|
9580 }/*function_byte_to_uint*/ |
|
9581 break; |
|
9582 |
|
9583 /**** |
|
9584 *BYTE_TO_UDINT |
|
9585 */ |
|
9586 case function_byte_to_udint : |
|
9587 { |
|
9588 symbol_c *last_type_symbol = NULL; |
|
9589 |
|
9590 { |
|
9591 identifier_c param_name("IN"); |
|
9592 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9593 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9594 |
|
9595 /* Get the value from a foo(<param_value>) style call */ |
|
9596 if (IN_param_value == NULL) |
|
9597 IN_param_value = function_call_param_iterator.next(); |
|
9598 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9599 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9600 |
|
9601 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9602 { |
|
9603 |
|
9604 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
9605 return return_type_symbol; |
|
9606 |
|
9607 } |
|
9608 |
|
9609 ERROR; |
|
9610 } |
|
9611 |
|
9612 }/*function_byte_to_udint*/ |
|
9613 break; |
|
9614 |
|
9615 /**** |
|
9616 *BYTE_TO_ULINT |
|
9617 */ |
|
9618 case function_byte_to_ulint : |
|
9619 { |
|
9620 symbol_c *last_type_symbol = NULL; |
|
9621 |
|
9622 { |
|
9623 identifier_c param_name("IN"); |
|
9624 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9625 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9626 |
|
9627 /* Get the value from a foo(<param_value>) style call */ |
|
9628 if (IN_param_value == NULL) |
|
9629 IN_param_value = function_call_param_iterator.next(); |
|
9630 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9631 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9632 |
|
9633 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9634 { |
|
9635 |
|
9636 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
9637 return return_type_symbol; |
|
9638 |
|
9639 } |
|
9640 |
|
9641 ERROR; |
|
9642 } |
|
9643 |
|
9644 }/*function_byte_to_ulint*/ |
|
9645 break; |
|
9646 |
|
9647 /**** |
|
9648 *BYTE_TO_REAL |
|
9649 */ |
|
9650 case function_byte_to_real : |
|
9651 { |
|
9652 symbol_c *last_type_symbol = NULL; |
|
9653 |
|
9654 { |
|
9655 identifier_c param_name("IN"); |
|
9656 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9657 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9658 |
|
9659 /* Get the value from a foo(<param_value>) style call */ |
|
9660 if (IN_param_value == NULL) |
|
9661 IN_param_value = function_call_param_iterator.next(); |
|
9662 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9663 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9664 |
|
9665 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9666 { |
|
9667 |
|
9668 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
9669 return return_type_symbol; |
|
9670 |
|
9671 } |
|
9672 |
|
9673 ERROR; |
|
9674 } |
|
9675 |
|
9676 }/*function_byte_to_real*/ |
|
9677 break; |
|
9678 |
|
9679 /**** |
|
9680 *BYTE_TO_LREAL |
|
9681 */ |
|
9682 case function_byte_to_lreal : |
|
9683 { |
|
9684 symbol_c *last_type_symbol = NULL; |
|
9685 |
|
9686 { |
|
9687 identifier_c param_name("IN"); |
|
9688 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9689 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9690 |
|
9691 /* Get the value from a foo(<param_value>) style call */ |
|
9692 if (IN_param_value == NULL) |
|
9693 IN_param_value = function_call_param_iterator.next(); |
|
9694 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9695 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9696 |
|
9697 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9698 { |
|
9699 |
|
9700 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
9701 return return_type_symbol; |
|
9702 |
|
9703 } |
|
9704 |
|
9705 ERROR; |
|
9706 } |
|
9707 |
|
9708 }/*function_byte_to_lreal*/ |
|
9709 break; |
|
9710 |
|
9711 /**** |
|
9712 *BYTE_TO_TIME |
|
9713 */ |
|
9714 case function_byte_to_time : |
|
9715 { |
|
9716 symbol_c *last_type_symbol = NULL; |
|
9717 |
|
9718 { |
|
9719 identifier_c param_name("IN"); |
|
9720 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9721 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9722 |
|
9723 /* Get the value from a foo(<param_value>) style call */ |
|
9724 if (IN_param_value == NULL) |
|
9725 IN_param_value = function_call_param_iterator.next(); |
|
9726 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9727 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9728 |
|
9729 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9730 { |
|
9731 |
|
9732 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
9733 return return_type_symbol; |
|
9734 |
|
9735 } |
|
9736 |
|
9737 ERROR; |
|
9738 } |
|
9739 |
|
9740 }/*function_byte_to_time*/ |
|
9741 break; |
|
9742 |
|
9743 /**** |
|
9744 *BYTE_TO_DATE |
|
9745 */ |
|
9746 case function_byte_to_date : |
|
9747 { |
|
9748 symbol_c *last_type_symbol = NULL; |
|
9749 |
|
9750 { |
|
9751 identifier_c param_name("IN"); |
|
9752 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9753 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9754 |
|
9755 /* Get the value from a foo(<param_value>) style call */ |
|
9756 if (IN_param_value == NULL) |
|
9757 IN_param_value = function_call_param_iterator.next(); |
|
9758 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9759 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9760 |
|
9761 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9762 { |
|
9763 |
|
9764 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
9765 return return_type_symbol; |
|
9766 |
|
9767 } |
|
9768 |
|
9769 ERROR; |
|
9770 } |
|
9771 |
|
9772 }/*function_byte_to_date*/ |
|
9773 break; |
|
9774 |
|
9775 /**** |
|
9776 *BYTE_TO_TOD |
|
9777 */ |
|
9778 case function_byte_to_tod : |
|
9779 { |
|
9780 symbol_c *last_type_symbol = NULL; |
|
9781 |
|
9782 { |
|
9783 identifier_c param_name("IN"); |
|
9784 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9785 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9786 |
|
9787 /* Get the value from a foo(<param_value>) style call */ |
|
9788 if (IN_param_value == NULL) |
|
9789 IN_param_value = function_call_param_iterator.next(); |
|
9790 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9791 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9792 |
|
9793 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9794 { |
|
9795 |
|
9796 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
9797 return return_type_symbol; |
|
9798 |
|
9799 } |
|
9800 |
|
9801 ERROR; |
|
9802 } |
|
9803 |
|
9804 }/*function_byte_to_tod*/ |
|
9805 break; |
|
9806 |
|
9807 /**** |
|
9808 *BYTE_TO_DT |
|
9809 */ |
|
9810 case function_byte_to_dt : |
|
9811 { |
|
9812 symbol_c *last_type_symbol = NULL; |
|
9813 |
|
9814 { |
|
9815 identifier_c param_name("IN"); |
|
9816 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9817 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9818 |
|
9819 /* Get the value from a foo(<param_value>) style call */ |
|
9820 if (IN_param_value == NULL) |
|
9821 IN_param_value = function_call_param_iterator.next(); |
|
9822 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9823 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9824 |
|
9825 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9826 { |
|
9827 |
|
9828 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
9829 return return_type_symbol; |
|
9830 |
|
9831 } |
|
9832 |
|
9833 ERROR; |
|
9834 } |
|
9835 |
|
9836 }/*function_byte_to_dt*/ |
|
9837 break; |
|
9838 |
|
9839 /**** |
|
9840 *BYTE_TO_STRING |
|
9841 */ |
|
9842 case function_byte_to_string : |
|
9843 { |
|
9844 symbol_c *last_type_symbol = NULL; |
|
9845 |
|
9846 { |
|
9847 identifier_c param_name("IN"); |
|
9848 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9849 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9850 |
|
9851 /* Get the value from a foo(<param_value>) style call */ |
|
9852 if (IN_param_value == NULL) |
|
9853 IN_param_value = function_call_param_iterator.next(); |
|
9854 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9855 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9856 |
|
9857 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9858 { |
|
9859 |
|
9860 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
9861 return return_type_symbol; |
|
9862 |
|
9863 } |
|
9864 |
|
9865 ERROR; |
|
9866 } |
|
9867 |
|
9868 }/*function_byte_to_string*/ |
|
9869 break; |
|
9870 |
|
9871 /**** |
|
9872 *BYTE_TO_WORD |
|
9873 */ |
|
9874 case function_byte_to_word : |
|
9875 { |
|
9876 symbol_c *last_type_symbol = NULL; |
|
9877 |
|
9878 { |
|
9879 identifier_c param_name("IN"); |
|
9880 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9881 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9882 |
|
9883 /* Get the value from a foo(<param_value>) style call */ |
|
9884 if (IN_param_value == NULL) |
|
9885 IN_param_value = function_call_param_iterator.next(); |
|
9886 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9887 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9888 |
|
9889 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9890 { |
|
9891 |
|
9892 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
9893 return return_type_symbol; |
|
9894 |
|
9895 } |
|
9896 |
|
9897 ERROR; |
|
9898 } |
|
9899 |
|
9900 }/*function_byte_to_word*/ |
|
9901 break; |
|
9902 |
|
9903 /**** |
|
9904 *BYTE_TO_DWORD |
|
9905 */ |
|
9906 case function_byte_to_dword : |
|
9907 { |
|
9908 symbol_c *last_type_symbol = NULL; |
|
9909 |
|
9910 { |
|
9911 identifier_c param_name("IN"); |
|
9912 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9913 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9914 |
|
9915 /* Get the value from a foo(<param_value>) style call */ |
|
9916 if (IN_param_value == NULL) |
|
9917 IN_param_value = function_call_param_iterator.next(); |
|
9918 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9919 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9920 |
|
9921 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9922 { |
|
9923 |
|
9924 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
9925 return return_type_symbol; |
|
9926 |
|
9927 } |
|
9928 |
|
9929 ERROR; |
|
9930 } |
|
9931 |
|
9932 }/*function_byte_to_dword*/ |
|
9933 break; |
|
9934 |
|
9935 /**** |
|
9936 *BYTE_TO_LWORD |
|
9937 */ |
|
9938 case function_byte_to_lword : |
|
9939 { |
|
9940 symbol_c *last_type_symbol = NULL; |
|
9941 |
|
9942 { |
|
9943 identifier_c param_name("IN"); |
|
9944 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9945 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9946 |
|
9947 /* Get the value from a foo(<param_value>) style call */ |
|
9948 if (IN_param_value == NULL) |
|
9949 IN_param_value = function_call_param_iterator.next(); |
|
9950 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9951 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9952 |
|
9953 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
9954 { |
|
9955 |
|
9956 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
9957 return return_type_symbol; |
|
9958 |
|
9959 } |
|
9960 |
|
9961 ERROR; |
|
9962 } |
|
9963 |
|
9964 }/*function_byte_to_lword*/ |
|
9965 break; |
|
9966 |
|
9967 /**** |
|
9968 *WORD_TO_BOOL |
|
9969 */ |
|
9970 case function_word_to_bool : |
|
9971 { |
|
9972 symbol_c *last_type_symbol = NULL; |
|
9973 |
|
9974 { |
|
9975 identifier_c param_name("IN"); |
|
9976 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
9977 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
9978 |
|
9979 /* Get the value from a foo(<param_value>) style call */ |
|
9980 if (IN_param_value == NULL) |
|
9981 IN_param_value = function_call_param_iterator.next(); |
|
9982 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
9983 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
9984 |
|
9985 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
9986 { |
|
9987 |
|
9988 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
9989 return return_type_symbol; |
|
9990 |
|
9991 } |
|
9992 |
|
9993 ERROR; |
|
9994 } |
|
9995 |
|
9996 }/*function_word_to_bool*/ |
|
9997 break; |
|
9998 |
|
9999 /**** |
|
10000 *WORD_TO_SINT |
|
10001 */ |
|
10002 case function_word_to_sint : |
|
10003 { |
|
10004 symbol_c *last_type_symbol = NULL; |
|
10005 |
|
10006 { |
|
10007 identifier_c param_name("IN"); |
|
10008 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10009 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10010 |
|
10011 /* Get the value from a foo(<param_value>) style call */ |
|
10012 if (IN_param_value == NULL) |
|
10013 IN_param_value = function_call_param_iterator.next(); |
|
10014 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10015 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10016 |
|
10017 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10018 { |
|
10019 |
|
10020 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
10021 return return_type_symbol; |
|
10022 |
|
10023 } |
|
10024 |
|
10025 ERROR; |
|
10026 } |
|
10027 |
|
10028 }/*function_word_to_sint*/ |
|
10029 break; |
|
10030 |
|
10031 /**** |
|
10032 *WORD_TO_INT |
|
10033 */ |
|
10034 case function_word_to_int : |
|
10035 { |
|
10036 symbol_c *last_type_symbol = NULL; |
|
10037 |
|
10038 { |
|
10039 identifier_c param_name("IN"); |
|
10040 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10041 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10042 |
|
10043 /* Get the value from a foo(<param_value>) style call */ |
|
10044 if (IN_param_value == NULL) |
|
10045 IN_param_value = function_call_param_iterator.next(); |
|
10046 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10047 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10048 |
|
10049 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10050 { |
|
10051 |
|
10052 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
10053 return return_type_symbol; |
|
10054 |
|
10055 } |
|
10056 |
|
10057 ERROR; |
|
10058 } |
|
10059 |
|
10060 }/*function_word_to_int*/ |
|
10061 break; |
|
10062 |
|
10063 /**** |
|
10064 *WORD_TO_DINT |
|
10065 */ |
|
10066 case function_word_to_dint : |
|
10067 { |
|
10068 symbol_c *last_type_symbol = NULL; |
|
10069 |
|
10070 { |
|
10071 identifier_c param_name("IN"); |
|
10072 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10073 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10074 |
|
10075 /* Get the value from a foo(<param_value>) style call */ |
|
10076 if (IN_param_value == NULL) |
|
10077 IN_param_value = function_call_param_iterator.next(); |
|
10078 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10079 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10080 |
|
10081 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10082 { |
|
10083 |
|
10084 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
10085 return return_type_symbol; |
|
10086 |
|
10087 } |
|
10088 |
|
10089 ERROR; |
|
10090 } |
|
10091 |
|
10092 }/*function_word_to_dint*/ |
|
10093 break; |
|
10094 |
|
10095 /**** |
|
10096 *WORD_TO_LINT |
|
10097 */ |
|
10098 case function_word_to_lint : |
|
10099 { |
|
10100 symbol_c *last_type_symbol = NULL; |
|
10101 |
|
10102 { |
|
10103 identifier_c param_name("IN"); |
|
10104 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10105 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10106 |
|
10107 /* Get the value from a foo(<param_value>) style call */ |
|
10108 if (IN_param_value == NULL) |
|
10109 IN_param_value = function_call_param_iterator.next(); |
|
10110 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10111 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10112 |
|
10113 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10114 { |
|
10115 |
|
10116 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
10117 return return_type_symbol; |
|
10118 |
|
10119 } |
|
10120 |
|
10121 ERROR; |
|
10122 } |
|
10123 |
|
10124 }/*function_word_to_lint*/ |
|
10125 break; |
|
10126 |
|
10127 /**** |
|
10128 *WORD_TO_USINT |
|
10129 */ |
|
10130 case function_word_to_usint : |
|
10131 { |
|
10132 symbol_c *last_type_symbol = NULL; |
|
10133 |
|
10134 { |
|
10135 identifier_c param_name("IN"); |
|
10136 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10137 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10138 |
|
10139 /* Get the value from a foo(<param_value>) style call */ |
|
10140 if (IN_param_value == NULL) |
|
10141 IN_param_value = function_call_param_iterator.next(); |
|
10142 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10143 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10144 |
|
10145 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10146 { |
|
10147 |
|
10148 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
10149 return return_type_symbol; |
|
10150 |
|
10151 } |
|
10152 |
|
10153 ERROR; |
|
10154 } |
|
10155 |
|
10156 }/*function_word_to_usint*/ |
|
10157 break; |
|
10158 |
|
10159 /**** |
|
10160 *WORD_TO_UINT |
|
10161 */ |
|
10162 case function_word_to_uint : |
|
10163 { |
|
10164 symbol_c *last_type_symbol = NULL; |
|
10165 |
|
10166 { |
|
10167 identifier_c param_name("IN"); |
|
10168 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10169 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10170 |
|
10171 /* Get the value from a foo(<param_value>) style call */ |
|
10172 if (IN_param_value == NULL) |
|
10173 IN_param_value = function_call_param_iterator.next(); |
|
10174 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10175 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10176 |
|
10177 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10178 { |
|
10179 |
|
10180 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
10181 return return_type_symbol; |
|
10182 |
|
10183 } |
|
10184 |
|
10185 ERROR; |
|
10186 } |
|
10187 |
|
10188 }/*function_word_to_uint*/ |
|
10189 break; |
|
10190 |
|
10191 /**** |
|
10192 *WORD_TO_UDINT |
|
10193 */ |
|
10194 case function_word_to_udint : |
|
10195 { |
|
10196 symbol_c *last_type_symbol = NULL; |
|
10197 |
|
10198 { |
|
10199 identifier_c param_name("IN"); |
|
10200 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10201 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10202 |
|
10203 /* Get the value from a foo(<param_value>) style call */ |
|
10204 if (IN_param_value == NULL) |
|
10205 IN_param_value = function_call_param_iterator.next(); |
|
10206 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10207 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10208 |
|
10209 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10210 { |
|
10211 |
|
10212 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
10213 return return_type_symbol; |
|
10214 |
|
10215 } |
|
10216 |
|
10217 ERROR; |
|
10218 } |
|
10219 |
|
10220 }/*function_word_to_udint*/ |
|
10221 break; |
|
10222 |
|
10223 /**** |
|
10224 *WORD_TO_ULINT |
|
10225 */ |
|
10226 case function_word_to_ulint : |
|
10227 { |
|
10228 symbol_c *last_type_symbol = NULL; |
|
10229 |
|
10230 { |
|
10231 identifier_c param_name("IN"); |
|
10232 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10233 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10234 |
|
10235 /* Get the value from a foo(<param_value>) style call */ |
|
10236 if (IN_param_value == NULL) |
|
10237 IN_param_value = function_call_param_iterator.next(); |
|
10238 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10239 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10240 |
|
10241 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10242 { |
|
10243 |
|
10244 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
10245 return return_type_symbol; |
|
10246 |
|
10247 } |
|
10248 |
|
10249 ERROR; |
|
10250 } |
|
10251 |
|
10252 }/*function_word_to_ulint*/ |
|
10253 break; |
|
10254 |
|
10255 /**** |
|
10256 *WORD_TO_REAL |
|
10257 */ |
|
10258 case function_word_to_real : |
|
10259 { |
|
10260 symbol_c *last_type_symbol = NULL; |
|
10261 |
|
10262 { |
|
10263 identifier_c param_name("IN"); |
|
10264 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10265 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10266 |
|
10267 /* Get the value from a foo(<param_value>) style call */ |
|
10268 if (IN_param_value == NULL) |
|
10269 IN_param_value = function_call_param_iterator.next(); |
|
10270 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10271 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10272 |
|
10273 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10274 { |
|
10275 |
|
10276 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
10277 return return_type_symbol; |
|
10278 |
|
10279 } |
|
10280 |
|
10281 ERROR; |
|
10282 } |
|
10283 |
|
10284 }/*function_word_to_real*/ |
|
10285 break; |
|
10286 |
|
10287 /**** |
|
10288 *WORD_TO_LREAL |
|
10289 */ |
|
10290 case function_word_to_lreal : |
|
10291 { |
|
10292 symbol_c *last_type_symbol = NULL; |
|
10293 |
|
10294 { |
|
10295 identifier_c param_name("IN"); |
|
10296 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10297 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10298 |
|
10299 /* Get the value from a foo(<param_value>) style call */ |
|
10300 if (IN_param_value == NULL) |
|
10301 IN_param_value = function_call_param_iterator.next(); |
|
10302 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10303 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10304 |
|
10305 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10306 { |
|
10307 |
|
10308 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
10309 return return_type_symbol; |
|
10310 |
|
10311 } |
|
10312 |
|
10313 ERROR; |
|
10314 } |
|
10315 |
|
10316 }/*function_word_to_lreal*/ |
|
10317 break; |
|
10318 |
|
10319 /**** |
|
10320 *WORD_TO_TIME |
|
10321 */ |
|
10322 case function_word_to_time : |
|
10323 { |
|
10324 symbol_c *last_type_symbol = NULL; |
|
10325 |
|
10326 { |
|
10327 identifier_c param_name("IN"); |
|
10328 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10329 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10330 |
|
10331 /* Get the value from a foo(<param_value>) style call */ |
|
10332 if (IN_param_value == NULL) |
|
10333 IN_param_value = function_call_param_iterator.next(); |
|
10334 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10335 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10336 |
|
10337 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10338 { |
|
10339 |
|
10340 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
10341 return return_type_symbol; |
|
10342 |
|
10343 } |
|
10344 |
|
10345 ERROR; |
|
10346 } |
|
10347 |
|
10348 }/*function_word_to_time*/ |
|
10349 break; |
|
10350 |
|
10351 /**** |
|
10352 *WORD_TO_DATE |
|
10353 */ |
|
10354 case function_word_to_date : |
|
10355 { |
|
10356 symbol_c *last_type_symbol = NULL; |
|
10357 |
|
10358 { |
|
10359 identifier_c param_name("IN"); |
|
10360 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10361 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10362 |
|
10363 /* Get the value from a foo(<param_value>) style call */ |
|
10364 if (IN_param_value == NULL) |
|
10365 IN_param_value = function_call_param_iterator.next(); |
|
10366 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10367 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10368 |
|
10369 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10370 { |
|
10371 |
|
10372 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
10373 return return_type_symbol; |
|
10374 |
|
10375 } |
|
10376 |
|
10377 ERROR; |
|
10378 } |
|
10379 |
|
10380 }/*function_word_to_date*/ |
|
10381 break; |
|
10382 |
|
10383 /**** |
|
10384 *WORD_TO_TOD |
|
10385 */ |
|
10386 case function_word_to_tod : |
|
10387 { |
|
10388 symbol_c *last_type_symbol = NULL; |
|
10389 |
|
10390 { |
|
10391 identifier_c param_name("IN"); |
|
10392 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10393 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10394 |
|
10395 /* Get the value from a foo(<param_value>) style call */ |
|
10396 if (IN_param_value == NULL) |
|
10397 IN_param_value = function_call_param_iterator.next(); |
|
10398 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10399 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10400 |
|
10401 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10402 { |
|
10403 |
|
10404 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
10405 return return_type_symbol; |
|
10406 |
|
10407 } |
|
10408 |
|
10409 ERROR; |
|
10410 } |
|
10411 |
|
10412 }/*function_word_to_tod*/ |
|
10413 break; |
|
10414 |
|
10415 /**** |
|
10416 *WORD_TO_DT |
|
10417 */ |
|
10418 case function_word_to_dt : |
|
10419 { |
|
10420 symbol_c *last_type_symbol = NULL; |
|
10421 |
|
10422 { |
|
10423 identifier_c param_name("IN"); |
|
10424 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10425 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10426 |
|
10427 /* Get the value from a foo(<param_value>) style call */ |
|
10428 if (IN_param_value == NULL) |
|
10429 IN_param_value = function_call_param_iterator.next(); |
|
10430 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10431 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10432 |
|
10433 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10434 { |
|
10435 |
|
10436 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
10437 return return_type_symbol; |
|
10438 |
|
10439 } |
|
10440 |
|
10441 ERROR; |
|
10442 } |
|
10443 |
|
10444 }/*function_word_to_dt*/ |
|
10445 break; |
|
10446 |
|
10447 /**** |
|
10448 *WORD_TO_STRING |
|
10449 */ |
|
10450 case function_word_to_string : |
|
10451 { |
|
10452 symbol_c *last_type_symbol = NULL; |
|
10453 |
|
10454 { |
|
10455 identifier_c param_name("IN"); |
|
10456 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10457 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10458 |
|
10459 /* Get the value from a foo(<param_value>) style call */ |
|
10460 if (IN_param_value == NULL) |
|
10461 IN_param_value = function_call_param_iterator.next(); |
|
10462 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10463 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10464 |
|
10465 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10466 { |
|
10467 |
|
10468 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
10469 return return_type_symbol; |
|
10470 |
|
10471 } |
|
10472 |
|
10473 ERROR; |
|
10474 } |
|
10475 |
|
10476 }/*function_word_to_string*/ |
|
10477 break; |
|
10478 |
|
10479 /**** |
|
10480 *WORD_TO_BYTE |
|
10481 */ |
|
10482 case function_word_to_byte : |
|
10483 { |
|
10484 symbol_c *last_type_symbol = NULL; |
|
10485 |
|
10486 { |
|
10487 identifier_c param_name("IN"); |
|
10488 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10489 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10490 |
|
10491 /* Get the value from a foo(<param_value>) style call */ |
|
10492 if (IN_param_value == NULL) |
|
10493 IN_param_value = function_call_param_iterator.next(); |
|
10494 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10495 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10496 |
|
10497 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10498 { |
|
10499 |
|
10500 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
10501 return return_type_symbol; |
|
10502 |
|
10503 } |
|
10504 |
|
10505 ERROR; |
|
10506 } |
|
10507 |
|
10508 }/*function_word_to_byte*/ |
|
10509 break; |
|
10510 |
|
10511 /**** |
|
10512 *WORD_TO_DWORD |
|
10513 */ |
|
10514 case function_word_to_dword : |
|
10515 { |
|
10516 symbol_c *last_type_symbol = NULL; |
|
10517 |
|
10518 { |
|
10519 identifier_c param_name("IN"); |
|
10520 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10521 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10522 |
|
10523 /* Get the value from a foo(<param_value>) style call */ |
|
10524 if (IN_param_value == NULL) |
|
10525 IN_param_value = function_call_param_iterator.next(); |
|
10526 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10527 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10528 |
|
10529 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10530 { |
|
10531 |
|
10532 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
10533 return return_type_symbol; |
|
10534 |
|
10535 } |
|
10536 |
|
10537 ERROR; |
|
10538 } |
|
10539 |
|
10540 }/*function_word_to_dword*/ |
|
10541 break; |
|
10542 |
|
10543 /**** |
|
10544 *WORD_TO_LWORD |
|
10545 */ |
|
10546 case function_word_to_lword : |
|
10547 { |
|
10548 symbol_c *last_type_symbol = NULL; |
|
10549 |
|
10550 { |
|
10551 identifier_c param_name("IN"); |
|
10552 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10553 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10554 |
|
10555 /* Get the value from a foo(<param_value>) style call */ |
|
10556 if (IN_param_value == NULL) |
|
10557 IN_param_value = function_call_param_iterator.next(); |
|
10558 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10559 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10560 |
|
10561 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
10562 { |
|
10563 |
|
10564 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
10565 return return_type_symbol; |
|
10566 |
|
10567 } |
|
10568 |
|
10569 ERROR; |
|
10570 } |
|
10571 |
|
10572 }/*function_word_to_lword*/ |
|
10573 break; |
|
10574 |
|
10575 /**** |
|
10576 *DWORD_TO_BOOL |
|
10577 */ |
|
10578 case function_dword_to_bool : |
|
10579 { |
|
10580 symbol_c *last_type_symbol = NULL; |
|
10581 |
|
10582 { |
|
10583 identifier_c param_name("IN"); |
|
10584 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10585 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10586 |
|
10587 /* Get the value from a foo(<param_value>) style call */ |
|
10588 if (IN_param_value == NULL) |
|
10589 IN_param_value = function_call_param_iterator.next(); |
|
10590 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10591 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10592 |
|
10593 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
10594 { |
|
10595 |
|
10596 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
10597 return return_type_symbol; |
|
10598 |
|
10599 } |
|
10600 |
|
10601 ERROR; |
|
10602 } |
|
10603 |
|
10604 }/*function_dword_to_bool*/ |
|
10605 break; |
|
10606 |
|
10607 /**** |
|
10608 *DWORD_TO_SINT |
|
10609 */ |
|
10610 case function_dword_to_sint : |
|
10611 { |
|
10612 symbol_c *last_type_symbol = NULL; |
|
10613 |
|
10614 { |
|
10615 identifier_c param_name("IN"); |
|
10616 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10617 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10618 |
|
10619 /* Get the value from a foo(<param_value>) style call */ |
|
10620 if (IN_param_value == NULL) |
|
10621 IN_param_value = function_call_param_iterator.next(); |
|
10622 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10623 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10624 |
|
10625 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
10626 { |
|
10627 |
|
10628 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
10629 return return_type_symbol; |
|
10630 |
|
10631 } |
|
10632 |
|
10633 ERROR; |
|
10634 } |
|
10635 |
|
10636 }/*function_dword_to_sint*/ |
|
10637 break; |
|
10638 |
|
10639 /**** |
|
10640 *DWORD_TO_INT |
|
10641 */ |
|
10642 case function_dword_to_int : |
|
10643 { |
|
10644 symbol_c *last_type_symbol = NULL; |
|
10645 |
|
10646 { |
|
10647 identifier_c param_name("IN"); |
|
10648 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10649 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10650 |
|
10651 /* Get the value from a foo(<param_value>) style call */ |
|
10652 if (IN_param_value == NULL) |
|
10653 IN_param_value = function_call_param_iterator.next(); |
|
10654 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10655 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10656 |
|
10657 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
10658 { |
|
10659 |
|
10660 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
10661 return return_type_symbol; |
|
10662 |
|
10663 } |
|
10664 |
|
10665 ERROR; |
|
10666 } |
|
10667 |
|
10668 }/*function_dword_to_int*/ |
|
10669 break; |
|
10670 |
|
10671 /**** |
|
10672 *DWORD_TO_DINT |
|
10673 */ |
|
10674 case function_dword_to_dint : |
|
10675 { |
|
10676 symbol_c *last_type_symbol = NULL; |
|
10677 |
|
10678 { |
|
10679 identifier_c param_name("IN"); |
|
10680 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10681 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10682 |
|
10683 /* Get the value from a foo(<param_value>) style call */ |
|
10684 if (IN_param_value == NULL) |
|
10685 IN_param_value = function_call_param_iterator.next(); |
|
10686 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10687 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10688 |
|
10689 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
10690 { |
|
10691 |
|
10692 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
10693 return return_type_symbol; |
|
10694 |
|
10695 } |
|
10696 |
|
10697 ERROR; |
|
10698 } |
|
10699 |
|
10700 }/*function_dword_to_dint*/ |
|
10701 break; |
|
10702 |
|
10703 /**** |
|
10704 *DWORD_TO_LINT |
|
10705 */ |
|
10706 case function_dword_to_lint : |
|
10707 { |
|
10708 symbol_c *last_type_symbol = NULL; |
|
10709 |
|
10710 { |
|
10711 identifier_c param_name("IN"); |
|
10712 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10713 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10714 |
|
10715 /* Get the value from a foo(<param_value>) style call */ |
|
10716 if (IN_param_value == NULL) |
|
10717 IN_param_value = function_call_param_iterator.next(); |
|
10718 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10719 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10720 |
|
10721 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
10722 { |
|
10723 |
|
10724 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
10725 return return_type_symbol; |
|
10726 |
|
10727 } |
|
10728 |
|
10729 ERROR; |
|
10730 } |
|
10731 |
|
10732 }/*function_dword_to_lint*/ |
|
10733 break; |
|
10734 |
|
10735 /**** |
|
10736 *DWORD_TO_USINT |
|
10737 */ |
|
10738 case function_dword_to_usint : |
|
10739 { |
|
10740 symbol_c *last_type_symbol = NULL; |
|
10741 |
|
10742 { |
|
10743 identifier_c param_name("IN"); |
|
10744 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10745 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10746 |
|
10747 /* Get the value from a foo(<param_value>) style call */ |
|
10748 if (IN_param_value == NULL) |
|
10749 IN_param_value = function_call_param_iterator.next(); |
|
10750 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10751 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10752 |
|
10753 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
10754 { |
|
10755 |
|
10756 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
10757 return return_type_symbol; |
|
10758 |
|
10759 } |
|
10760 |
|
10761 ERROR; |
|
10762 } |
|
10763 |
|
10764 }/*function_dword_to_usint*/ |
|
10765 break; |
|
10766 |
|
10767 /**** |
|
10768 *DWORD_TO_UINT |
|
10769 */ |
|
10770 case function_dword_to_uint : |
|
10771 { |
|
10772 symbol_c *last_type_symbol = NULL; |
|
10773 |
|
10774 { |
|
10775 identifier_c param_name("IN"); |
|
10776 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10777 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10778 |
|
10779 /* Get the value from a foo(<param_value>) style call */ |
|
10780 if (IN_param_value == NULL) |
|
10781 IN_param_value = function_call_param_iterator.next(); |
|
10782 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10783 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10784 |
|
10785 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
10786 { |
|
10787 |
|
10788 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
10789 return return_type_symbol; |
|
10790 |
|
10791 } |
|
10792 |
|
10793 ERROR; |
|
10794 } |
|
10795 |
|
10796 }/*function_dword_to_uint*/ |
|
10797 break; |
|
10798 |
|
10799 /**** |
|
10800 *DWORD_TO_UDINT |
|
10801 */ |
|
10802 case function_dword_to_udint : |
|
10803 { |
|
10804 symbol_c *last_type_symbol = NULL; |
|
10805 |
|
10806 { |
|
10807 identifier_c param_name("IN"); |
|
10808 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10809 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10810 |
|
10811 /* Get the value from a foo(<param_value>) style call */ |
|
10812 if (IN_param_value == NULL) |
|
10813 IN_param_value = function_call_param_iterator.next(); |
|
10814 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10815 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10816 |
|
10817 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
10818 { |
|
10819 |
|
10820 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
10821 return return_type_symbol; |
|
10822 |
|
10823 } |
|
10824 |
|
10825 ERROR; |
|
10826 } |
|
10827 |
|
10828 }/*function_dword_to_udint*/ |
|
10829 break; |
|
10830 |
|
10831 /**** |
|
10832 *DWORD_TO_ULINT |
|
10833 */ |
|
10834 case function_dword_to_ulint : |
|
10835 { |
|
10836 symbol_c *last_type_symbol = NULL; |
|
10837 |
|
10838 { |
|
10839 identifier_c param_name("IN"); |
|
10840 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10841 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10842 |
|
10843 /* Get the value from a foo(<param_value>) style call */ |
|
10844 if (IN_param_value == NULL) |
|
10845 IN_param_value = function_call_param_iterator.next(); |
|
10846 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10847 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10848 |
|
10849 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
10850 { |
|
10851 |
|
10852 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
10853 return return_type_symbol; |
|
10854 |
|
10855 } |
|
10856 |
|
10857 ERROR; |
|
10858 } |
|
10859 |
|
10860 }/*function_dword_to_ulint*/ |
|
10861 break; |
|
10862 |
|
10863 /**** |
|
10864 *DWORD_TO_REAL |
|
10865 */ |
|
10866 case function_dword_to_real : |
|
10867 { |
|
10868 symbol_c *last_type_symbol = NULL; |
|
10869 |
|
10870 { |
|
10871 identifier_c param_name("IN"); |
|
10872 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10873 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10874 |
|
10875 /* Get the value from a foo(<param_value>) style call */ |
|
10876 if (IN_param_value == NULL) |
|
10877 IN_param_value = function_call_param_iterator.next(); |
|
10878 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10879 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10880 |
|
10881 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
10882 { |
|
10883 |
|
10884 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
10885 return return_type_symbol; |
|
10886 |
|
10887 } |
|
10888 |
|
10889 ERROR; |
|
10890 } |
|
10891 |
|
10892 }/*function_dword_to_real*/ |
|
10893 break; |
|
10894 |
|
10895 /**** |
|
10896 *DWORD_TO_LREAL |
|
10897 */ |
|
10898 case function_dword_to_lreal : |
|
10899 { |
|
10900 symbol_c *last_type_symbol = NULL; |
|
10901 |
|
10902 { |
|
10903 identifier_c param_name("IN"); |
|
10904 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10905 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10906 |
|
10907 /* Get the value from a foo(<param_value>) style call */ |
|
10908 if (IN_param_value == NULL) |
|
10909 IN_param_value = function_call_param_iterator.next(); |
|
10910 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10911 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10912 |
|
10913 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
10914 { |
|
10915 |
|
10916 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
10917 return return_type_symbol; |
|
10918 |
|
10919 } |
|
10920 |
|
10921 ERROR; |
|
10922 } |
|
10923 |
|
10924 }/*function_dword_to_lreal*/ |
|
10925 break; |
|
10926 |
|
10927 /**** |
|
10928 *DWORD_TO_TIME |
|
10929 */ |
|
10930 case function_dword_to_time : |
|
10931 { |
|
10932 symbol_c *last_type_symbol = NULL; |
|
10933 |
|
10934 { |
|
10935 identifier_c param_name("IN"); |
|
10936 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10937 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10938 |
|
10939 /* Get the value from a foo(<param_value>) style call */ |
|
10940 if (IN_param_value == NULL) |
|
10941 IN_param_value = function_call_param_iterator.next(); |
|
10942 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10943 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10944 |
|
10945 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
10946 { |
|
10947 |
|
10948 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
10949 return return_type_symbol; |
|
10950 |
|
10951 } |
|
10952 |
|
10953 ERROR; |
|
10954 } |
|
10955 |
|
10956 }/*function_dword_to_time*/ |
|
10957 break; |
|
10958 |
|
10959 /**** |
|
10960 *DWORD_TO_DATE |
|
10961 */ |
|
10962 case function_dword_to_date : |
|
10963 { |
|
10964 symbol_c *last_type_symbol = NULL; |
|
10965 |
|
10966 { |
|
10967 identifier_c param_name("IN"); |
|
10968 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
10969 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
10970 |
|
10971 /* Get the value from a foo(<param_value>) style call */ |
|
10972 if (IN_param_value == NULL) |
|
10973 IN_param_value = function_call_param_iterator.next(); |
|
10974 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
10975 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
10976 |
|
10977 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
10978 { |
|
10979 |
|
10980 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
10981 return return_type_symbol; |
|
10982 |
|
10983 } |
|
10984 |
|
10985 ERROR; |
|
10986 } |
|
10987 |
|
10988 }/*function_dword_to_date*/ |
|
10989 break; |
|
10990 |
|
10991 /**** |
|
10992 *DWORD_TO_TOD |
|
10993 */ |
|
10994 case function_dword_to_tod : |
|
10995 { |
|
10996 symbol_c *last_type_symbol = NULL; |
|
10997 |
|
10998 { |
|
10999 identifier_c param_name("IN"); |
|
11000 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11001 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11002 |
|
11003 /* Get the value from a foo(<param_value>) style call */ |
|
11004 if (IN_param_value == NULL) |
|
11005 IN_param_value = function_call_param_iterator.next(); |
|
11006 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11007 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11008 |
|
11009 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
11010 { |
|
11011 |
|
11012 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
11013 return return_type_symbol; |
|
11014 |
|
11015 } |
|
11016 |
|
11017 ERROR; |
|
11018 } |
|
11019 |
|
11020 }/*function_dword_to_tod*/ |
|
11021 break; |
|
11022 |
|
11023 /**** |
|
11024 *DWORD_TO_DT |
|
11025 */ |
|
11026 case function_dword_to_dt : |
|
11027 { |
|
11028 symbol_c *last_type_symbol = NULL; |
|
11029 |
|
11030 { |
|
11031 identifier_c param_name("IN"); |
|
11032 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11033 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11034 |
|
11035 /* Get the value from a foo(<param_value>) style call */ |
|
11036 if (IN_param_value == NULL) |
|
11037 IN_param_value = function_call_param_iterator.next(); |
|
11038 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11039 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11040 |
|
11041 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
11042 { |
|
11043 |
|
11044 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
11045 return return_type_symbol; |
|
11046 |
|
11047 } |
|
11048 |
|
11049 ERROR; |
|
11050 } |
|
11051 |
|
11052 }/*function_dword_to_dt*/ |
|
11053 break; |
|
11054 |
|
11055 /**** |
|
11056 *DWORD_TO_STRING |
|
11057 */ |
|
11058 case function_dword_to_string : |
|
11059 { |
|
11060 symbol_c *last_type_symbol = NULL; |
|
11061 |
|
11062 { |
|
11063 identifier_c param_name("IN"); |
|
11064 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11065 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11066 |
|
11067 /* Get the value from a foo(<param_value>) style call */ |
|
11068 if (IN_param_value == NULL) |
|
11069 IN_param_value = function_call_param_iterator.next(); |
|
11070 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11071 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11072 |
|
11073 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
11074 { |
|
11075 |
|
11076 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
11077 return return_type_symbol; |
|
11078 |
|
11079 } |
|
11080 |
|
11081 ERROR; |
|
11082 } |
|
11083 |
|
11084 }/*function_dword_to_string*/ |
|
11085 break; |
|
11086 |
|
11087 /**** |
|
11088 *DWORD_TO_BYTE |
|
11089 */ |
|
11090 case function_dword_to_byte : |
|
11091 { |
|
11092 symbol_c *last_type_symbol = NULL; |
|
11093 |
|
11094 { |
|
11095 identifier_c param_name("IN"); |
|
11096 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11097 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11098 |
|
11099 /* Get the value from a foo(<param_value>) style call */ |
|
11100 if (IN_param_value == NULL) |
|
11101 IN_param_value = function_call_param_iterator.next(); |
|
11102 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11103 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11104 |
|
11105 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
11106 { |
|
11107 |
|
11108 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
11109 return return_type_symbol; |
|
11110 |
|
11111 } |
|
11112 |
|
11113 ERROR; |
|
11114 } |
|
11115 |
|
11116 }/*function_dword_to_byte*/ |
|
11117 break; |
|
11118 |
|
11119 /**** |
|
11120 *DWORD_TO_WORD |
|
11121 */ |
|
11122 case function_dword_to_word : |
|
11123 { |
|
11124 symbol_c *last_type_symbol = NULL; |
|
11125 |
|
11126 { |
|
11127 identifier_c param_name("IN"); |
|
11128 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11129 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11130 |
|
11131 /* Get the value from a foo(<param_value>) style call */ |
|
11132 if (IN_param_value == NULL) |
|
11133 IN_param_value = function_call_param_iterator.next(); |
|
11134 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11135 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11136 |
|
11137 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
11138 { |
|
11139 |
|
11140 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
11141 return return_type_symbol; |
|
11142 |
|
11143 } |
|
11144 |
|
11145 ERROR; |
|
11146 } |
|
11147 |
|
11148 }/*function_dword_to_word*/ |
|
11149 break; |
|
11150 |
|
11151 /**** |
|
11152 *DWORD_TO_LWORD |
|
11153 */ |
|
11154 case function_dword_to_lword : |
|
11155 { |
|
11156 symbol_c *last_type_symbol = NULL; |
|
11157 |
|
11158 { |
|
11159 identifier_c param_name("IN"); |
|
11160 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11161 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11162 |
|
11163 /* Get the value from a foo(<param_value>) style call */ |
|
11164 if (IN_param_value == NULL) |
|
11165 IN_param_value = function_call_param_iterator.next(); |
|
11166 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11167 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11168 |
|
11169 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
11170 { |
|
11171 |
|
11172 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
11173 return return_type_symbol; |
|
11174 |
|
11175 } |
|
11176 |
|
11177 ERROR; |
|
11178 } |
|
11179 |
|
11180 }/*function_dword_to_lword*/ |
|
11181 break; |
|
11182 |
|
11183 /**** |
|
11184 *LWORD_TO_BOOL |
|
11185 */ |
|
11186 case function_lword_to_bool : |
|
11187 { |
|
11188 symbol_c *last_type_symbol = NULL; |
|
11189 |
|
11190 { |
|
11191 identifier_c param_name("IN"); |
|
11192 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11193 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11194 |
|
11195 /* Get the value from a foo(<param_value>) style call */ |
|
11196 if (IN_param_value == NULL) |
|
11197 IN_param_value = function_call_param_iterator.next(); |
|
11198 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11199 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11200 |
|
11201 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11202 { |
|
11203 |
|
11204 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
11205 return return_type_symbol; |
|
11206 |
|
11207 } |
|
11208 |
|
11209 ERROR; |
|
11210 } |
|
11211 |
|
11212 }/*function_lword_to_bool*/ |
|
11213 break; |
|
11214 |
|
11215 /**** |
|
11216 *LWORD_TO_SINT |
|
11217 */ |
|
11218 case function_lword_to_sint : |
|
11219 { |
|
11220 symbol_c *last_type_symbol = NULL; |
|
11221 |
|
11222 { |
|
11223 identifier_c param_name("IN"); |
|
11224 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11225 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11226 |
|
11227 /* Get the value from a foo(<param_value>) style call */ |
|
11228 if (IN_param_value == NULL) |
|
11229 IN_param_value = function_call_param_iterator.next(); |
|
11230 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11231 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11232 |
|
11233 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11234 { |
|
11235 |
|
11236 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
11237 return return_type_symbol; |
|
11238 |
|
11239 } |
|
11240 |
|
11241 ERROR; |
|
11242 } |
|
11243 |
|
11244 }/*function_lword_to_sint*/ |
|
11245 break; |
|
11246 |
|
11247 /**** |
|
11248 *LWORD_TO_INT |
|
11249 */ |
|
11250 case function_lword_to_int : |
|
11251 { |
|
11252 symbol_c *last_type_symbol = NULL; |
|
11253 |
|
11254 { |
|
11255 identifier_c param_name("IN"); |
|
11256 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11257 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11258 |
|
11259 /* Get the value from a foo(<param_value>) style call */ |
|
11260 if (IN_param_value == NULL) |
|
11261 IN_param_value = function_call_param_iterator.next(); |
|
11262 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11263 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11264 |
|
11265 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11266 { |
|
11267 |
|
11268 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
11269 return return_type_symbol; |
|
11270 |
|
11271 } |
|
11272 |
|
11273 ERROR; |
|
11274 } |
|
11275 |
|
11276 }/*function_lword_to_int*/ |
|
11277 break; |
|
11278 |
|
11279 /**** |
|
11280 *LWORD_TO_DINT |
|
11281 */ |
|
11282 case function_lword_to_dint : |
|
11283 { |
|
11284 symbol_c *last_type_symbol = NULL; |
|
11285 |
|
11286 { |
|
11287 identifier_c param_name("IN"); |
|
11288 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11289 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11290 |
|
11291 /* Get the value from a foo(<param_value>) style call */ |
|
11292 if (IN_param_value == NULL) |
|
11293 IN_param_value = function_call_param_iterator.next(); |
|
11294 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11295 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11296 |
|
11297 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11298 { |
|
11299 |
|
11300 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
11301 return return_type_symbol; |
|
11302 |
|
11303 } |
|
11304 |
|
11305 ERROR; |
|
11306 } |
|
11307 |
|
11308 }/*function_lword_to_dint*/ |
|
11309 break; |
|
11310 |
|
11311 /**** |
|
11312 *LWORD_TO_LINT |
|
11313 */ |
|
11314 case function_lword_to_lint : |
|
11315 { |
|
11316 symbol_c *last_type_symbol = NULL; |
|
11317 |
|
11318 { |
|
11319 identifier_c param_name("IN"); |
|
11320 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11321 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11322 |
|
11323 /* Get the value from a foo(<param_value>) style call */ |
|
11324 if (IN_param_value == NULL) |
|
11325 IN_param_value = function_call_param_iterator.next(); |
|
11326 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11327 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11328 |
|
11329 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11330 { |
|
11331 |
|
11332 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
11333 return return_type_symbol; |
|
11334 |
|
11335 } |
|
11336 |
|
11337 ERROR; |
|
11338 } |
|
11339 |
|
11340 }/*function_lword_to_lint*/ |
|
11341 break; |
|
11342 |
|
11343 /**** |
|
11344 *LWORD_TO_USINT |
|
11345 */ |
|
11346 case function_lword_to_usint : |
|
11347 { |
|
11348 symbol_c *last_type_symbol = NULL; |
|
11349 |
|
11350 { |
|
11351 identifier_c param_name("IN"); |
|
11352 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11353 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11354 |
|
11355 /* Get the value from a foo(<param_value>) style call */ |
|
11356 if (IN_param_value == NULL) |
|
11357 IN_param_value = function_call_param_iterator.next(); |
|
11358 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11359 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11360 |
|
11361 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11362 { |
|
11363 |
|
11364 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
11365 return return_type_symbol; |
|
11366 |
|
11367 } |
|
11368 |
|
11369 ERROR; |
|
11370 } |
|
11371 |
|
11372 }/*function_lword_to_usint*/ |
|
11373 break; |
|
11374 |
|
11375 /**** |
|
11376 *LWORD_TO_UINT |
|
11377 */ |
|
11378 case function_lword_to_uint : |
|
11379 { |
|
11380 symbol_c *last_type_symbol = NULL; |
|
11381 |
|
11382 { |
|
11383 identifier_c param_name("IN"); |
|
11384 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11385 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11386 |
|
11387 /* Get the value from a foo(<param_value>) style call */ |
|
11388 if (IN_param_value == NULL) |
|
11389 IN_param_value = function_call_param_iterator.next(); |
|
11390 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11391 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11392 |
|
11393 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11394 { |
|
11395 |
|
11396 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
11397 return return_type_symbol; |
|
11398 |
|
11399 } |
|
11400 |
|
11401 ERROR; |
|
11402 } |
|
11403 |
|
11404 }/*function_lword_to_uint*/ |
|
11405 break; |
|
11406 |
|
11407 /**** |
|
11408 *LWORD_TO_UDINT |
|
11409 */ |
|
11410 case function_lword_to_udint : |
|
11411 { |
|
11412 symbol_c *last_type_symbol = NULL; |
|
11413 |
|
11414 { |
|
11415 identifier_c param_name("IN"); |
|
11416 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11417 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11418 |
|
11419 /* Get the value from a foo(<param_value>) style call */ |
|
11420 if (IN_param_value == NULL) |
|
11421 IN_param_value = function_call_param_iterator.next(); |
|
11422 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11423 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11424 |
|
11425 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11426 { |
|
11427 |
|
11428 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
11429 return return_type_symbol; |
|
11430 |
|
11431 } |
|
11432 |
|
11433 ERROR; |
|
11434 } |
|
11435 |
|
11436 }/*function_lword_to_udint*/ |
|
11437 break; |
|
11438 |
|
11439 /**** |
|
11440 *LWORD_TO_ULINT |
|
11441 */ |
|
11442 case function_lword_to_ulint : |
|
11443 { |
|
11444 symbol_c *last_type_symbol = NULL; |
|
11445 |
|
11446 { |
|
11447 identifier_c param_name("IN"); |
|
11448 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11449 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11450 |
|
11451 /* Get the value from a foo(<param_value>) style call */ |
|
11452 if (IN_param_value == NULL) |
|
11453 IN_param_value = function_call_param_iterator.next(); |
|
11454 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11455 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11456 |
|
11457 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11458 { |
|
11459 |
|
11460 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
11461 return return_type_symbol; |
|
11462 |
|
11463 } |
|
11464 |
|
11465 ERROR; |
|
11466 } |
|
11467 |
|
11468 }/*function_lword_to_ulint*/ |
|
11469 break; |
|
11470 |
|
11471 /**** |
|
11472 *LWORD_TO_REAL |
|
11473 */ |
|
11474 case function_lword_to_real : |
|
11475 { |
|
11476 symbol_c *last_type_symbol = NULL; |
|
11477 |
|
11478 { |
|
11479 identifier_c param_name("IN"); |
|
11480 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11481 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11482 |
|
11483 /* Get the value from a foo(<param_value>) style call */ |
|
11484 if (IN_param_value == NULL) |
|
11485 IN_param_value = function_call_param_iterator.next(); |
|
11486 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11487 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11488 |
|
11489 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11490 { |
|
11491 |
|
11492 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
11493 return return_type_symbol; |
|
11494 |
|
11495 } |
|
11496 |
|
11497 ERROR; |
|
11498 } |
|
11499 |
|
11500 }/*function_lword_to_real*/ |
|
11501 break; |
|
11502 |
|
11503 /**** |
|
11504 *LWORD_TO_LREAL |
|
11505 */ |
|
11506 case function_lword_to_lreal : |
|
11507 { |
|
11508 symbol_c *last_type_symbol = NULL; |
|
11509 |
|
11510 { |
|
11511 identifier_c param_name("IN"); |
|
11512 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11513 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11514 |
|
11515 /* Get the value from a foo(<param_value>) style call */ |
|
11516 if (IN_param_value == NULL) |
|
11517 IN_param_value = function_call_param_iterator.next(); |
|
11518 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11519 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11520 |
|
11521 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11522 { |
|
11523 |
|
11524 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
11525 return return_type_symbol; |
|
11526 |
|
11527 } |
|
11528 |
|
11529 ERROR; |
|
11530 } |
|
11531 |
|
11532 }/*function_lword_to_lreal*/ |
|
11533 break; |
|
11534 |
|
11535 /**** |
|
11536 *LWORD_TO_TIME |
|
11537 */ |
|
11538 case function_lword_to_time : |
|
11539 { |
|
11540 symbol_c *last_type_symbol = NULL; |
|
11541 |
|
11542 { |
|
11543 identifier_c param_name("IN"); |
|
11544 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11545 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11546 |
|
11547 /* Get the value from a foo(<param_value>) style call */ |
|
11548 if (IN_param_value == NULL) |
|
11549 IN_param_value = function_call_param_iterator.next(); |
|
11550 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11551 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11552 |
|
11553 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11554 { |
|
11555 |
|
11556 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
11557 return return_type_symbol; |
|
11558 |
|
11559 } |
|
11560 |
|
11561 ERROR; |
|
11562 } |
|
11563 |
|
11564 }/*function_lword_to_time*/ |
|
11565 break; |
|
11566 |
|
11567 /**** |
|
11568 *LWORD_TO_DATE |
|
11569 */ |
|
11570 case function_lword_to_date : |
|
11571 { |
|
11572 symbol_c *last_type_symbol = NULL; |
|
11573 |
|
11574 { |
|
11575 identifier_c param_name("IN"); |
|
11576 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11577 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11578 |
|
11579 /* Get the value from a foo(<param_value>) style call */ |
|
11580 if (IN_param_value == NULL) |
|
11581 IN_param_value = function_call_param_iterator.next(); |
|
11582 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11583 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11584 |
|
11585 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11586 { |
|
11587 |
|
11588 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
11589 return return_type_symbol; |
|
11590 |
|
11591 } |
|
11592 |
|
11593 ERROR; |
|
11594 } |
|
11595 |
|
11596 }/*function_lword_to_date*/ |
|
11597 break; |
|
11598 |
|
11599 /**** |
|
11600 *LWORD_TO_TOD |
|
11601 */ |
|
11602 case function_lword_to_tod : |
|
11603 { |
|
11604 symbol_c *last_type_symbol = NULL; |
|
11605 |
|
11606 { |
|
11607 identifier_c param_name("IN"); |
|
11608 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11609 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11610 |
|
11611 /* Get the value from a foo(<param_value>) style call */ |
|
11612 if (IN_param_value == NULL) |
|
11613 IN_param_value = function_call_param_iterator.next(); |
|
11614 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11615 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11616 |
|
11617 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11618 { |
|
11619 |
|
11620 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
11621 return return_type_symbol; |
|
11622 |
|
11623 } |
|
11624 |
|
11625 ERROR; |
|
11626 } |
|
11627 |
|
11628 }/*function_lword_to_tod*/ |
|
11629 break; |
|
11630 |
|
11631 /**** |
|
11632 *LWORD_TO_DT |
|
11633 */ |
|
11634 case function_lword_to_dt : |
|
11635 { |
|
11636 symbol_c *last_type_symbol = NULL; |
|
11637 |
|
11638 { |
|
11639 identifier_c param_name("IN"); |
|
11640 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11641 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11642 |
|
11643 /* Get the value from a foo(<param_value>) style call */ |
|
11644 if (IN_param_value == NULL) |
|
11645 IN_param_value = function_call_param_iterator.next(); |
|
11646 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11647 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11648 |
|
11649 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11650 { |
|
11651 |
|
11652 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
11653 return return_type_symbol; |
|
11654 |
|
11655 } |
|
11656 |
|
11657 ERROR; |
|
11658 } |
|
11659 |
|
11660 }/*function_lword_to_dt*/ |
|
11661 break; |
|
11662 |
|
11663 /**** |
|
11664 *LWORD_TO_STRING |
|
11665 */ |
|
11666 case function_lword_to_string : |
|
11667 { |
|
11668 symbol_c *last_type_symbol = NULL; |
|
11669 |
|
11670 { |
|
11671 identifier_c param_name("IN"); |
|
11672 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11673 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11674 |
|
11675 /* Get the value from a foo(<param_value>) style call */ |
|
11676 if (IN_param_value == NULL) |
|
11677 IN_param_value = function_call_param_iterator.next(); |
|
11678 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11679 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11680 |
|
11681 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11682 { |
|
11683 |
|
11684 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
11685 return return_type_symbol; |
|
11686 |
|
11687 } |
|
11688 |
|
11689 ERROR; |
|
11690 } |
|
11691 |
|
11692 }/*function_lword_to_string*/ |
|
11693 break; |
|
11694 |
|
11695 /**** |
|
11696 *LWORD_TO_BYTE |
|
11697 */ |
|
11698 case function_lword_to_byte : |
|
11699 { |
|
11700 symbol_c *last_type_symbol = NULL; |
|
11701 |
|
11702 { |
|
11703 identifier_c param_name("IN"); |
|
11704 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11705 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11706 |
|
11707 /* Get the value from a foo(<param_value>) style call */ |
|
11708 if (IN_param_value == NULL) |
|
11709 IN_param_value = function_call_param_iterator.next(); |
|
11710 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11711 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11712 |
|
11713 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11714 { |
|
11715 |
|
11716 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
11717 return return_type_symbol; |
|
11718 |
|
11719 } |
|
11720 |
|
11721 ERROR; |
|
11722 } |
|
11723 |
|
11724 }/*function_lword_to_byte*/ |
|
11725 break; |
|
11726 |
|
11727 /**** |
|
11728 *LWORD_TO_WORD |
|
11729 */ |
|
11730 case function_lword_to_word : |
|
11731 { |
|
11732 symbol_c *last_type_symbol = NULL; |
|
11733 |
|
11734 { |
|
11735 identifier_c param_name("IN"); |
|
11736 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11737 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11738 |
|
11739 /* Get the value from a foo(<param_value>) style call */ |
|
11740 if (IN_param_value == NULL) |
|
11741 IN_param_value = function_call_param_iterator.next(); |
|
11742 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11743 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11744 |
|
11745 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11746 { |
|
11747 |
|
11748 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
11749 return return_type_symbol; |
|
11750 |
|
11751 } |
|
11752 |
|
11753 ERROR; |
|
11754 } |
|
11755 |
|
11756 }/*function_lword_to_word*/ |
|
11757 break; |
|
11758 |
|
11759 /**** |
|
11760 *LWORD_TO_DWORD |
|
11761 */ |
|
11762 case function_lword_to_dword : |
|
11763 { |
|
11764 symbol_c *last_type_symbol = NULL; |
|
11765 |
|
11766 { |
|
11767 identifier_c param_name("IN"); |
|
11768 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11769 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11770 |
|
11771 /* Get the value from a foo(<param_value>) style call */ |
|
11772 if (IN_param_value == NULL) |
|
11773 IN_param_value = function_call_param_iterator.next(); |
|
11774 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11775 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11776 |
|
11777 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11778 { |
|
11779 |
|
11780 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
11781 return return_type_symbol; |
|
11782 |
|
11783 } |
|
11784 |
|
11785 ERROR; |
|
11786 } |
|
11787 |
|
11788 }/*function_lword_to_dword*/ |
|
11789 break; |
|
11790 |
|
11791 /**** |
|
11792 *TRUNC |
|
11793 */ |
|
11794 case function_trunc : |
|
11795 { |
|
11796 symbol_c *last_type_symbol = NULL; |
|
11797 |
|
11798 { |
|
11799 identifier_c param_name("IN"); |
|
11800 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11801 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11802 |
|
11803 /* Get the value from a foo(<param_value>) style call */ |
|
11804 if (IN_param_value == NULL) |
|
11805 IN_param_value = function_call_param_iterator.next(); |
|
11806 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11807 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11808 |
|
11809 if(search_expression_type->is_real_type(IN_type_symbol)) |
|
11810 { |
|
11811 |
|
11812 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
|
11813 return return_type_symbol; |
|
11814 |
|
11815 } |
|
11816 |
|
11817 ERROR; |
|
11818 } |
|
11819 |
|
11820 }/*function_trunc*/ |
|
11821 break; |
|
11822 |
|
11823 /**** |
|
11824 *BCD_TO_USINT |
|
11825 */ |
|
11826 case function_bcd_to_usint : |
|
11827 { |
|
11828 symbol_c *last_type_symbol = NULL; |
|
11829 |
|
11830 { |
|
11831 identifier_c param_name("IN"); |
|
11832 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11833 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11834 |
|
11835 /* Get the value from a foo(<param_value>) style call */ |
|
11836 if (IN_param_value == NULL) |
|
11837 IN_param_value = function_call_param_iterator.next(); |
|
11838 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11839 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11840 |
|
11841 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
11842 { |
|
11843 |
|
11844 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
11845 return return_type_symbol; |
|
11846 |
|
11847 } |
|
11848 |
|
11849 ERROR; |
|
11850 } |
|
11851 |
|
11852 }/*function_bcd_to_usint*/ |
|
11853 break; |
|
11854 |
|
11855 /**** |
|
11856 *BCD_TO_UINT |
|
11857 */ |
|
11858 case function_bcd_to_uint : |
|
11859 { |
|
11860 symbol_c *last_type_symbol = NULL; |
|
11861 |
|
11862 { |
|
11863 identifier_c param_name("IN"); |
|
11864 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11865 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11866 |
|
11867 /* Get the value from a foo(<param_value>) style call */ |
|
11868 if (IN_param_value == NULL) |
|
11869 IN_param_value = function_call_param_iterator.next(); |
|
11870 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11871 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11872 |
|
11873 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
11874 { |
|
11875 |
|
11876 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
11877 return return_type_symbol; |
|
11878 |
|
11879 } |
|
11880 |
|
11881 ERROR; |
|
11882 } |
|
11883 |
|
11884 }/*function_bcd_to_uint*/ |
|
11885 break; |
|
11886 |
|
11887 /**** |
|
11888 *BCD_TO_UDINT |
|
11889 */ |
|
11890 case function_bcd_to_udint : |
|
11891 { |
|
11892 symbol_c *last_type_symbol = NULL; |
|
11893 |
|
11894 { |
|
11895 identifier_c param_name("IN"); |
|
11896 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11897 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11898 |
|
11899 /* Get the value from a foo(<param_value>) style call */ |
|
11900 if (IN_param_value == NULL) |
|
11901 IN_param_value = function_call_param_iterator.next(); |
|
11902 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11903 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11904 |
|
11905 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
11906 { |
|
11907 |
|
11908 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
11909 return return_type_symbol; |
|
11910 |
|
11911 } |
|
11912 |
|
11913 ERROR; |
|
11914 } |
|
11915 |
|
11916 }/*function_bcd_to_udint*/ |
|
11917 break; |
|
11918 |
|
11919 /**** |
|
11920 *BCD_TO_ULINT |
|
11921 */ |
|
11922 case function_bcd_to_ulint : |
|
11923 { |
|
11924 symbol_c *last_type_symbol = NULL; |
|
11925 |
|
11926 { |
|
11927 identifier_c param_name("IN"); |
|
11928 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11929 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11930 |
|
11931 /* Get the value from a foo(<param_value>) style call */ |
|
11932 if (IN_param_value == NULL) |
|
11933 IN_param_value = function_call_param_iterator.next(); |
|
11934 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11935 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11936 |
|
11937 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
11938 { |
|
11939 |
|
11940 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
11941 return return_type_symbol; |
|
11942 |
|
11943 } |
|
11944 |
|
11945 ERROR; |
|
11946 } |
|
11947 |
|
11948 }/*function_bcd_to_ulint*/ |
|
11949 break; |
|
11950 |
|
11951 /**** |
|
11952 *USINT_TO_BCD |
|
11953 */ |
|
11954 case function_usint_to_bcd : |
|
11955 { |
|
11956 symbol_c *last_type_symbol = NULL; |
|
11957 |
|
11958 { |
|
11959 identifier_c param_name("IN"); |
|
11960 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11961 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11962 |
|
11963 /* Get the value from a foo(<param_value>) style call */ |
|
11964 if (IN_param_value == NULL) |
|
11965 IN_param_value = function_call_param_iterator.next(); |
|
11966 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11967 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
11968 |
|
11969 if (typeid(*last_type_symbol) == typeid(usint_type_name_c)) |
|
11970 { |
|
11971 |
|
11972 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
|
11973 return return_type_symbol; |
|
11974 |
|
11975 } |
|
11976 |
|
11977 ERROR; |
|
11978 } |
|
11979 |
|
11980 }/*function_usint_to_bcd*/ |
|
11981 break; |
|
11982 |
|
11983 /**** |
|
11984 *UINT_TO_BCD |
|
11985 */ |
|
11986 case function_uint_to_bcd : |
|
11987 { |
|
11988 symbol_c *last_type_symbol = NULL; |
|
11989 |
|
11990 { |
|
11991 identifier_c param_name("IN"); |
|
11992 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
11993 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
11994 |
|
11995 /* Get the value from a foo(<param_value>) style call */ |
|
11996 if (IN_param_value == NULL) |
|
11997 IN_param_value = function_call_param_iterator.next(); |
|
11998 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
11999 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
12000 |
|
12001 if (typeid(*last_type_symbol) == typeid(uint_type_name_c)) |
|
12002 { |
|
12003 |
|
12004 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
|
12005 return return_type_symbol; |
|
12006 |
|
12007 } |
|
12008 |
|
12009 ERROR; |
|
12010 } |
|
12011 |
|
12012 }/*function_uint_to_bcd*/ |
|
12013 break; |
|
12014 |
|
12015 /**** |
|
12016 *UDINT_TO_BCD |
|
12017 */ |
|
12018 case function_udint_to_bcd : |
|
12019 { |
|
12020 symbol_c *last_type_symbol = NULL; |
|
12021 |
|
12022 { |
|
12023 identifier_c param_name("IN"); |
|
12024 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
12025 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
12026 |
|
12027 /* Get the value from a foo(<param_value>) style call */ |
|
12028 if (IN_param_value == NULL) |
|
12029 IN_param_value = function_call_param_iterator.next(); |
|
12030 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
12031 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
12032 |
|
12033 if (typeid(*last_type_symbol) == typeid(udint_type_name_c)) |
|
12034 { |
|
12035 |
|
12036 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
|
12037 return return_type_symbol; |
|
12038 |
|
12039 } |
|
12040 |
|
12041 ERROR; |
|
12042 } |
|
12043 |
|
12044 }/*function_udint_to_bcd*/ |
|
12045 break; |
|
12046 |
|
12047 /**** |
|
12048 *ULINT_TO_BCD |
|
12049 */ |
|
12050 case function_ulint_to_bcd : |
|
12051 { |
|
12052 symbol_c *last_type_symbol = NULL; |
|
12053 |
|
12054 { |
|
12055 identifier_c param_name("IN"); |
|
12056 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
12057 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
12058 |
|
12059 /* Get the value from a foo(<param_value>) style call */ |
|
12060 if (IN_param_value == NULL) |
|
12061 IN_param_value = function_call_param_iterator.next(); |
|
12062 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
12063 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
12064 |
|
12065 if (typeid(*last_type_symbol) == typeid(ulint_type_name_c)) |
|
12066 { |
|
12067 |
|
12068 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
|
12069 return return_type_symbol; |
|
12070 |
|
12071 } |
|
12072 |
|
12073 ERROR; |
|
12074 } |
|
12075 |
|
12076 }/*function_ulint_to_bcd*/ |
|
12077 break; |
|
12078 |
|
12079 /**** |
|
12080 *DATE_AND_TIME_TO_TIME_OF_DAY |
|
12081 */ |
|
12082 case function_date_and_time_to_time_of_day : |
|
12083 { |
|
12084 symbol_c *last_type_symbol = NULL; |
|
12085 |
|
12086 { |
|
12087 identifier_c param_name("IN"); |
|
12088 /* Get the value from a foo(<param_name> = <param_value>) style call */ |
|
12089 symbol_c *IN_param_value = function_call_param_iterator.search(¶m_name); |
|
12090 |
|
12091 /* Get the value from a foo(<param_value>) style call */ |
|
12092 if (IN_param_value == NULL) |
|
12093 IN_param_value = function_call_param_iterator.next(); |
|
12094 symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value); |
|
12095 last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ; |
|
12096 |
|
12097 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
12098 { |
|
12099 |
|
12100 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
12101 return return_type_symbol; |
|
12102 |
|
12103 } |
|
12104 |
|
12105 ERROR; |
|
12106 } |
|
12107 |
|
12108 }/*function_date_and_time_to_time_of_day*/ |
11980 }/*function_date_and_time_to_time_of_day*/ |
12109 break; |
11981 break; |
12110 |
11982 |
12111 /**** |
11983 /**** |
12112 *DATE_AND_TIME_TO_DATE |
11984 *DATE_AND_TIME_TO_DATE |
19896 |
19768 |
19897 }/*function_lreal_to_lword*/ |
19769 }/*function_lreal_to_lword*/ |
19898 break; |
19770 break; |
19899 |
19771 |
19900 /**** |
19772 /**** |
19901 *TIME_TO_BOOL |
19773 *TIME_TO_SINT |
19902 */ |
19774 */ |
19903 case function_time_to_bool : |
19775 case function_time_to_sint : |
19904 { |
19776 { |
19905 symbol_c *last_type_symbol = NULL; |
19777 symbol_c *last_type_symbol = NULL; |
19906 |
19778 |
19907 { |
19779 { |
19908 symbol_c *IN_type_symbol = param_data_type; |
19780 symbol_c *IN_type_symbol = param_data_type; |
19909 last_type_symbol = param_data_type; |
19781 last_type_symbol = param_data_type; |
19910 |
19782 |
19911 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
19783 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
19784 { |
|
19785 |
|
19786 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
19787 return return_type_symbol; |
|
19788 |
|
19789 } |
|
19790 |
|
19791 ERROR; |
|
19792 } |
|
19793 |
|
19794 }/*function_time_to_sint*/ |
|
19795 break; |
|
19796 |
|
19797 /**** |
|
19798 *TIME_TO_INT |
|
19799 */ |
|
19800 case function_time_to_int : |
|
19801 { |
|
19802 symbol_c *last_type_symbol = NULL; |
|
19803 |
|
19804 { |
|
19805 symbol_c *IN_type_symbol = param_data_type; |
|
19806 last_type_symbol = param_data_type; |
|
19807 |
|
19808 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
19809 { |
|
19810 |
|
19811 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
19812 return return_type_symbol; |
|
19813 |
|
19814 } |
|
19815 |
|
19816 ERROR; |
|
19817 } |
|
19818 |
|
19819 }/*function_time_to_int*/ |
|
19820 break; |
|
19821 |
|
19822 /**** |
|
19823 *TIME_TO_DINT |
|
19824 */ |
|
19825 case function_time_to_dint : |
|
19826 { |
|
19827 symbol_c *last_type_symbol = NULL; |
|
19828 |
|
19829 { |
|
19830 symbol_c *IN_type_symbol = param_data_type; |
|
19831 last_type_symbol = param_data_type; |
|
19832 |
|
19833 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
19834 { |
|
19835 |
|
19836 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
19837 return return_type_symbol; |
|
19838 |
|
19839 } |
|
19840 |
|
19841 ERROR; |
|
19842 } |
|
19843 |
|
19844 }/*function_time_to_dint*/ |
|
19845 break; |
|
19846 |
|
19847 /**** |
|
19848 *TIME_TO_LINT |
|
19849 */ |
|
19850 case function_time_to_lint : |
|
19851 { |
|
19852 symbol_c *last_type_symbol = NULL; |
|
19853 |
|
19854 { |
|
19855 symbol_c *IN_type_symbol = param_data_type; |
|
19856 last_type_symbol = param_data_type; |
|
19857 |
|
19858 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
19859 { |
|
19860 |
|
19861 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
19862 return return_type_symbol; |
|
19863 |
|
19864 } |
|
19865 |
|
19866 ERROR; |
|
19867 } |
|
19868 |
|
19869 }/*function_time_to_lint*/ |
|
19870 break; |
|
19871 |
|
19872 /**** |
|
19873 *TIME_TO_USINT |
|
19874 */ |
|
19875 case function_time_to_usint : |
|
19876 { |
|
19877 symbol_c *last_type_symbol = NULL; |
|
19878 |
|
19879 { |
|
19880 symbol_c *IN_type_symbol = param_data_type; |
|
19881 last_type_symbol = param_data_type; |
|
19882 |
|
19883 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
19884 { |
|
19885 |
|
19886 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
19887 return return_type_symbol; |
|
19888 |
|
19889 } |
|
19890 |
|
19891 ERROR; |
|
19892 } |
|
19893 |
|
19894 }/*function_time_to_usint*/ |
|
19895 break; |
|
19896 |
|
19897 /**** |
|
19898 *TIME_TO_UINT |
|
19899 */ |
|
19900 case function_time_to_uint : |
|
19901 { |
|
19902 symbol_c *last_type_symbol = NULL; |
|
19903 |
|
19904 { |
|
19905 symbol_c *IN_type_symbol = param_data_type; |
|
19906 last_type_symbol = param_data_type; |
|
19907 |
|
19908 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
19909 { |
|
19910 |
|
19911 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
19912 return return_type_symbol; |
|
19913 |
|
19914 } |
|
19915 |
|
19916 ERROR; |
|
19917 } |
|
19918 |
|
19919 }/*function_time_to_uint*/ |
|
19920 break; |
|
19921 |
|
19922 /**** |
|
19923 *TIME_TO_UDINT |
|
19924 */ |
|
19925 case function_time_to_udint : |
|
19926 { |
|
19927 symbol_c *last_type_symbol = NULL; |
|
19928 |
|
19929 { |
|
19930 symbol_c *IN_type_symbol = param_data_type; |
|
19931 last_type_symbol = param_data_type; |
|
19932 |
|
19933 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
19934 { |
|
19935 |
|
19936 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
19937 return return_type_symbol; |
|
19938 |
|
19939 } |
|
19940 |
|
19941 ERROR; |
|
19942 } |
|
19943 |
|
19944 }/*function_time_to_udint*/ |
|
19945 break; |
|
19946 |
|
19947 /**** |
|
19948 *TIME_TO_ULINT |
|
19949 */ |
|
19950 case function_time_to_ulint : |
|
19951 { |
|
19952 symbol_c *last_type_symbol = NULL; |
|
19953 |
|
19954 { |
|
19955 symbol_c *IN_type_symbol = param_data_type; |
|
19956 last_type_symbol = param_data_type; |
|
19957 |
|
19958 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
19959 { |
|
19960 |
|
19961 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
19962 return return_type_symbol; |
|
19963 |
|
19964 } |
|
19965 |
|
19966 ERROR; |
|
19967 } |
|
19968 |
|
19969 }/*function_time_to_ulint*/ |
|
19970 break; |
|
19971 |
|
19972 /**** |
|
19973 *TIME_TO_REAL |
|
19974 */ |
|
19975 case function_time_to_real : |
|
19976 { |
|
19977 symbol_c *last_type_symbol = NULL; |
|
19978 |
|
19979 { |
|
19980 symbol_c *IN_type_symbol = param_data_type; |
|
19981 last_type_symbol = param_data_type; |
|
19982 |
|
19983 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
19984 { |
|
19985 |
|
19986 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
19987 return return_type_symbol; |
|
19988 |
|
19989 } |
|
19990 |
|
19991 ERROR; |
|
19992 } |
|
19993 |
|
19994 }/*function_time_to_real*/ |
|
19995 break; |
|
19996 |
|
19997 /**** |
|
19998 *TIME_TO_LREAL |
|
19999 */ |
|
20000 case function_time_to_lreal : |
|
20001 { |
|
20002 symbol_c *last_type_symbol = NULL; |
|
20003 |
|
20004 { |
|
20005 symbol_c *IN_type_symbol = param_data_type; |
|
20006 last_type_symbol = param_data_type; |
|
20007 |
|
20008 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
20009 { |
|
20010 |
|
20011 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
20012 return return_type_symbol; |
|
20013 |
|
20014 } |
|
20015 |
|
20016 ERROR; |
|
20017 } |
|
20018 |
|
20019 }/*function_time_to_lreal*/ |
|
20020 break; |
|
20021 |
|
20022 /**** |
|
20023 *TIME_TO_STRING |
|
20024 */ |
|
20025 case function_time_to_string : |
|
20026 { |
|
20027 symbol_c *last_type_symbol = NULL; |
|
20028 |
|
20029 { |
|
20030 symbol_c *IN_type_symbol = param_data_type; |
|
20031 last_type_symbol = param_data_type; |
|
20032 |
|
20033 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
20034 { |
|
20035 |
|
20036 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
20037 return return_type_symbol; |
|
20038 |
|
20039 } |
|
20040 |
|
20041 ERROR; |
|
20042 } |
|
20043 |
|
20044 }/*function_time_to_string*/ |
|
20045 break; |
|
20046 |
|
20047 /**** |
|
20048 *TIME_TO_BYTE |
|
20049 */ |
|
20050 case function_time_to_byte : |
|
20051 { |
|
20052 symbol_c *last_type_symbol = NULL; |
|
20053 |
|
20054 { |
|
20055 symbol_c *IN_type_symbol = param_data_type; |
|
20056 last_type_symbol = param_data_type; |
|
20057 |
|
20058 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
20059 { |
|
20060 |
|
20061 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
20062 return return_type_symbol; |
|
20063 |
|
20064 } |
|
20065 |
|
20066 ERROR; |
|
20067 } |
|
20068 |
|
20069 }/*function_time_to_byte*/ |
|
20070 break; |
|
20071 |
|
20072 /**** |
|
20073 *TIME_TO_WORD |
|
20074 */ |
|
20075 case function_time_to_word : |
|
20076 { |
|
20077 symbol_c *last_type_symbol = NULL; |
|
20078 |
|
20079 { |
|
20080 symbol_c *IN_type_symbol = param_data_type; |
|
20081 last_type_symbol = param_data_type; |
|
20082 |
|
20083 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
20084 { |
|
20085 |
|
20086 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
20087 return return_type_symbol; |
|
20088 |
|
20089 } |
|
20090 |
|
20091 ERROR; |
|
20092 } |
|
20093 |
|
20094 }/*function_time_to_word*/ |
|
20095 break; |
|
20096 |
|
20097 /**** |
|
20098 *TIME_TO_DWORD |
|
20099 */ |
|
20100 case function_time_to_dword : |
|
20101 { |
|
20102 symbol_c *last_type_symbol = NULL; |
|
20103 |
|
20104 { |
|
20105 symbol_c *IN_type_symbol = param_data_type; |
|
20106 last_type_symbol = param_data_type; |
|
20107 |
|
20108 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
20109 { |
|
20110 |
|
20111 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
20112 return return_type_symbol; |
|
20113 |
|
20114 } |
|
20115 |
|
20116 ERROR; |
|
20117 } |
|
20118 |
|
20119 }/*function_time_to_dword*/ |
|
20120 break; |
|
20121 |
|
20122 /**** |
|
20123 *TIME_TO_LWORD |
|
20124 */ |
|
20125 case function_time_to_lword : |
|
20126 { |
|
20127 symbol_c *last_type_symbol = NULL; |
|
20128 |
|
20129 { |
|
20130 symbol_c *IN_type_symbol = param_data_type; |
|
20131 last_type_symbol = param_data_type; |
|
20132 |
|
20133 if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol)) |
|
20134 { |
|
20135 |
|
20136 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
20137 return return_type_symbol; |
|
20138 |
|
20139 } |
|
20140 |
|
20141 ERROR; |
|
20142 } |
|
20143 |
|
20144 }/*function_time_to_lword*/ |
|
20145 break; |
|
20146 |
|
20147 /**** |
|
20148 *DATE_TO_SINT |
|
20149 */ |
|
20150 case function_date_to_sint : |
|
20151 { |
|
20152 symbol_c *last_type_symbol = NULL; |
|
20153 |
|
20154 { |
|
20155 symbol_c *IN_type_symbol = param_data_type; |
|
20156 last_type_symbol = param_data_type; |
|
20157 |
|
20158 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
20159 { |
|
20160 |
|
20161 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
20162 return return_type_symbol; |
|
20163 |
|
20164 } |
|
20165 |
|
20166 ERROR; |
|
20167 } |
|
20168 |
|
20169 }/*function_date_to_sint*/ |
|
20170 break; |
|
20171 |
|
20172 /**** |
|
20173 *DATE_TO_INT |
|
20174 */ |
|
20175 case function_date_to_int : |
|
20176 { |
|
20177 symbol_c *last_type_symbol = NULL; |
|
20178 |
|
20179 { |
|
20180 symbol_c *IN_type_symbol = param_data_type; |
|
20181 last_type_symbol = param_data_type; |
|
20182 |
|
20183 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
20184 { |
|
20185 |
|
20186 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
20187 return return_type_symbol; |
|
20188 |
|
20189 } |
|
20190 |
|
20191 ERROR; |
|
20192 } |
|
20193 |
|
20194 }/*function_date_to_int*/ |
|
20195 break; |
|
20196 |
|
20197 /**** |
|
20198 *DATE_TO_DINT |
|
20199 */ |
|
20200 case function_date_to_dint : |
|
20201 { |
|
20202 symbol_c *last_type_symbol = NULL; |
|
20203 |
|
20204 { |
|
20205 symbol_c *IN_type_symbol = param_data_type; |
|
20206 last_type_symbol = param_data_type; |
|
20207 |
|
20208 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
20209 { |
|
20210 |
|
20211 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
20212 return return_type_symbol; |
|
20213 |
|
20214 } |
|
20215 |
|
20216 ERROR; |
|
20217 } |
|
20218 |
|
20219 }/*function_date_to_dint*/ |
|
20220 break; |
|
20221 |
|
20222 /**** |
|
20223 *DATE_TO_LINT |
|
20224 */ |
|
20225 case function_date_to_lint : |
|
20226 { |
|
20227 symbol_c *last_type_symbol = NULL; |
|
20228 |
|
20229 { |
|
20230 symbol_c *IN_type_symbol = param_data_type; |
|
20231 last_type_symbol = param_data_type; |
|
20232 |
|
20233 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
20234 { |
|
20235 |
|
20236 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
20237 return return_type_symbol; |
|
20238 |
|
20239 } |
|
20240 |
|
20241 ERROR; |
|
20242 } |
|
20243 |
|
20244 }/*function_date_to_lint*/ |
|
20245 break; |
|
20246 |
|
20247 /**** |
|
20248 *DATE_TO_USINT |
|
20249 */ |
|
20250 case function_date_to_usint : |
|
20251 { |
|
20252 symbol_c *last_type_symbol = NULL; |
|
20253 |
|
20254 { |
|
20255 symbol_c *IN_type_symbol = param_data_type; |
|
20256 last_type_symbol = param_data_type; |
|
20257 |
|
20258 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
20259 { |
|
20260 |
|
20261 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
20262 return return_type_symbol; |
|
20263 |
|
20264 } |
|
20265 |
|
20266 ERROR; |
|
20267 } |
|
20268 |
|
20269 }/*function_date_to_usint*/ |
|
20270 break; |
|
20271 |
|
20272 /**** |
|
20273 *DATE_TO_UINT |
|
20274 */ |
|
20275 case function_date_to_uint : |
|
20276 { |
|
20277 symbol_c *last_type_symbol = NULL; |
|
20278 |
|
20279 { |
|
20280 symbol_c *IN_type_symbol = param_data_type; |
|
20281 last_type_symbol = param_data_type; |
|
20282 |
|
20283 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
20284 { |
|
20285 |
|
20286 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
20287 return return_type_symbol; |
|
20288 |
|
20289 } |
|
20290 |
|
20291 ERROR; |
|
20292 } |
|
20293 |
|
20294 }/*function_date_to_uint*/ |
|
20295 break; |
|
20296 |
|
20297 /**** |
|
20298 *DATE_TO_UDINT |
|
20299 */ |
|
20300 case function_date_to_udint : |
|
20301 { |
|
20302 symbol_c *last_type_symbol = NULL; |
|
20303 |
|
20304 { |
|
20305 symbol_c *IN_type_symbol = param_data_type; |
|
20306 last_type_symbol = param_data_type; |
|
20307 |
|
20308 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
20309 { |
|
20310 |
|
20311 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
20312 return return_type_symbol; |
|
20313 |
|
20314 } |
|
20315 |
|
20316 ERROR; |
|
20317 } |
|
20318 |
|
20319 }/*function_date_to_udint*/ |
|
20320 break; |
|
20321 |
|
20322 /**** |
|
20323 *DATE_TO_ULINT |
|
20324 */ |
|
20325 case function_date_to_ulint : |
|
20326 { |
|
20327 symbol_c *last_type_symbol = NULL; |
|
20328 |
|
20329 { |
|
20330 symbol_c *IN_type_symbol = param_data_type; |
|
20331 last_type_symbol = param_data_type; |
|
20332 |
|
20333 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
20334 { |
|
20335 |
|
20336 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
20337 return return_type_symbol; |
|
20338 |
|
20339 } |
|
20340 |
|
20341 ERROR; |
|
20342 } |
|
20343 |
|
20344 }/*function_date_to_ulint*/ |
|
20345 break; |
|
20346 |
|
20347 /**** |
|
20348 *DATE_TO_REAL |
|
20349 */ |
|
20350 case function_date_to_real : |
|
20351 { |
|
20352 symbol_c *last_type_symbol = NULL; |
|
20353 |
|
20354 { |
|
20355 symbol_c *IN_type_symbol = param_data_type; |
|
20356 last_type_symbol = param_data_type; |
|
20357 |
|
20358 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
20359 { |
|
20360 |
|
20361 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
20362 return return_type_symbol; |
|
20363 |
|
20364 } |
|
20365 |
|
20366 ERROR; |
|
20367 } |
|
20368 |
|
20369 }/*function_date_to_real*/ |
|
20370 break; |
|
20371 |
|
20372 /**** |
|
20373 *DATE_TO_LREAL |
|
20374 */ |
|
20375 case function_date_to_lreal : |
|
20376 { |
|
20377 symbol_c *last_type_symbol = NULL; |
|
20378 |
|
20379 { |
|
20380 symbol_c *IN_type_symbol = param_data_type; |
|
20381 last_type_symbol = param_data_type; |
|
20382 |
|
20383 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
20384 { |
|
20385 |
|
20386 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
20387 return return_type_symbol; |
|
20388 |
|
20389 } |
|
20390 |
|
20391 ERROR; |
|
20392 } |
|
20393 |
|
20394 }/*function_date_to_lreal*/ |
|
20395 break; |
|
20396 |
|
20397 /**** |
|
20398 *DATE_TO_STRING |
|
20399 */ |
|
20400 case function_date_to_string : |
|
20401 { |
|
20402 symbol_c *last_type_symbol = NULL; |
|
20403 |
|
20404 { |
|
20405 symbol_c *IN_type_symbol = param_data_type; |
|
20406 last_type_symbol = param_data_type; |
|
20407 |
|
20408 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
20409 { |
|
20410 |
|
20411 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
20412 return return_type_symbol; |
|
20413 |
|
20414 } |
|
20415 |
|
20416 ERROR; |
|
20417 } |
|
20418 |
|
20419 }/*function_date_to_string*/ |
|
20420 break; |
|
20421 |
|
20422 /**** |
|
20423 *DATE_TO_BYTE |
|
20424 */ |
|
20425 case function_date_to_byte : |
|
20426 { |
|
20427 symbol_c *last_type_symbol = NULL; |
|
20428 |
|
20429 { |
|
20430 symbol_c *IN_type_symbol = param_data_type; |
|
20431 last_type_symbol = param_data_type; |
|
20432 |
|
20433 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
20434 { |
|
20435 |
|
20436 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
20437 return return_type_symbol; |
|
20438 |
|
20439 } |
|
20440 |
|
20441 ERROR; |
|
20442 } |
|
20443 |
|
20444 }/*function_date_to_byte*/ |
|
20445 break; |
|
20446 |
|
20447 /**** |
|
20448 *DATE_TO_WORD |
|
20449 */ |
|
20450 case function_date_to_word : |
|
20451 { |
|
20452 symbol_c *last_type_symbol = NULL; |
|
20453 |
|
20454 { |
|
20455 symbol_c *IN_type_symbol = param_data_type; |
|
20456 last_type_symbol = param_data_type; |
|
20457 |
|
20458 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
20459 { |
|
20460 |
|
20461 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
20462 return return_type_symbol; |
|
20463 |
|
20464 } |
|
20465 |
|
20466 ERROR; |
|
20467 } |
|
20468 |
|
20469 }/*function_date_to_word*/ |
|
20470 break; |
|
20471 |
|
20472 /**** |
|
20473 *DATE_TO_DWORD |
|
20474 */ |
|
20475 case function_date_to_dword : |
|
20476 { |
|
20477 symbol_c *last_type_symbol = NULL; |
|
20478 |
|
20479 { |
|
20480 symbol_c *IN_type_symbol = param_data_type; |
|
20481 last_type_symbol = param_data_type; |
|
20482 |
|
20483 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
20484 { |
|
20485 |
|
20486 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
20487 return return_type_symbol; |
|
20488 |
|
20489 } |
|
20490 |
|
20491 ERROR; |
|
20492 } |
|
20493 |
|
20494 }/*function_date_to_dword*/ |
|
20495 break; |
|
20496 |
|
20497 /**** |
|
20498 *DATE_TO_LWORD |
|
20499 */ |
|
20500 case function_date_to_lword : |
|
20501 { |
|
20502 symbol_c *last_type_symbol = NULL; |
|
20503 |
|
20504 { |
|
20505 symbol_c *IN_type_symbol = param_data_type; |
|
20506 last_type_symbol = param_data_type; |
|
20507 |
|
20508 if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol)) |
|
20509 { |
|
20510 |
|
20511 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
20512 return return_type_symbol; |
|
20513 |
|
20514 } |
|
20515 |
|
20516 ERROR; |
|
20517 } |
|
20518 |
|
20519 }/*function_date_to_lword*/ |
|
20520 break; |
|
20521 |
|
20522 /**** |
|
20523 *TOD_TO_SINT |
|
20524 */ |
|
20525 case function_tod_to_sint : |
|
20526 { |
|
20527 symbol_c *last_type_symbol = NULL; |
|
20528 |
|
20529 { |
|
20530 symbol_c *IN_type_symbol = param_data_type; |
|
20531 last_type_symbol = param_data_type; |
|
20532 |
|
20533 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
20534 { |
|
20535 |
|
20536 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
20537 return return_type_symbol; |
|
20538 |
|
20539 } |
|
20540 |
|
20541 ERROR; |
|
20542 } |
|
20543 |
|
20544 }/*function_tod_to_sint*/ |
|
20545 break; |
|
20546 |
|
20547 /**** |
|
20548 *TOD_TO_INT |
|
20549 */ |
|
20550 case function_tod_to_int : |
|
20551 { |
|
20552 symbol_c *last_type_symbol = NULL; |
|
20553 |
|
20554 { |
|
20555 symbol_c *IN_type_symbol = param_data_type; |
|
20556 last_type_symbol = param_data_type; |
|
20557 |
|
20558 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
20559 { |
|
20560 |
|
20561 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
20562 return return_type_symbol; |
|
20563 |
|
20564 } |
|
20565 |
|
20566 ERROR; |
|
20567 } |
|
20568 |
|
20569 }/*function_tod_to_int*/ |
|
20570 break; |
|
20571 |
|
20572 /**** |
|
20573 *TOD_TO_DINT |
|
20574 */ |
|
20575 case function_tod_to_dint : |
|
20576 { |
|
20577 symbol_c *last_type_symbol = NULL; |
|
20578 |
|
20579 { |
|
20580 symbol_c *IN_type_symbol = param_data_type; |
|
20581 last_type_symbol = param_data_type; |
|
20582 |
|
20583 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
20584 { |
|
20585 |
|
20586 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
20587 return return_type_symbol; |
|
20588 |
|
20589 } |
|
20590 |
|
20591 ERROR; |
|
20592 } |
|
20593 |
|
20594 }/*function_tod_to_dint*/ |
|
20595 break; |
|
20596 |
|
20597 /**** |
|
20598 *TOD_TO_LINT |
|
20599 */ |
|
20600 case function_tod_to_lint : |
|
20601 { |
|
20602 symbol_c *last_type_symbol = NULL; |
|
20603 |
|
20604 { |
|
20605 symbol_c *IN_type_symbol = param_data_type; |
|
20606 last_type_symbol = param_data_type; |
|
20607 |
|
20608 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
20609 { |
|
20610 |
|
20611 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
20612 return return_type_symbol; |
|
20613 |
|
20614 } |
|
20615 |
|
20616 ERROR; |
|
20617 } |
|
20618 |
|
20619 }/*function_tod_to_lint*/ |
|
20620 break; |
|
20621 |
|
20622 /**** |
|
20623 *TOD_TO_USINT |
|
20624 */ |
|
20625 case function_tod_to_usint : |
|
20626 { |
|
20627 symbol_c *last_type_symbol = NULL; |
|
20628 |
|
20629 { |
|
20630 symbol_c *IN_type_symbol = param_data_type; |
|
20631 last_type_symbol = param_data_type; |
|
20632 |
|
20633 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
20634 { |
|
20635 |
|
20636 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
20637 return return_type_symbol; |
|
20638 |
|
20639 } |
|
20640 |
|
20641 ERROR; |
|
20642 } |
|
20643 |
|
20644 }/*function_tod_to_usint*/ |
|
20645 break; |
|
20646 |
|
20647 /**** |
|
20648 *TOD_TO_UINT |
|
20649 */ |
|
20650 case function_tod_to_uint : |
|
20651 { |
|
20652 symbol_c *last_type_symbol = NULL; |
|
20653 |
|
20654 { |
|
20655 symbol_c *IN_type_symbol = param_data_type; |
|
20656 last_type_symbol = param_data_type; |
|
20657 |
|
20658 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
20659 { |
|
20660 |
|
20661 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
20662 return return_type_symbol; |
|
20663 |
|
20664 } |
|
20665 |
|
20666 ERROR; |
|
20667 } |
|
20668 |
|
20669 }/*function_tod_to_uint*/ |
|
20670 break; |
|
20671 |
|
20672 /**** |
|
20673 *TOD_TO_UDINT |
|
20674 */ |
|
20675 case function_tod_to_udint : |
|
20676 { |
|
20677 symbol_c *last_type_symbol = NULL; |
|
20678 |
|
20679 { |
|
20680 symbol_c *IN_type_symbol = param_data_type; |
|
20681 last_type_symbol = param_data_type; |
|
20682 |
|
20683 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
20684 { |
|
20685 |
|
20686 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
20687 return return_type_symbol; |
|
20688 |
|
20689 } |
|
20690 |
|
20691 ERROR; |
|
20692 } |
|
20693 |
|
20694 }/*function_tod_to_udint*/ |
|
20695 break; |
|
20696 |
|
20697 /**** |
|
20698 *TOD_TO_ULINT |
|
20699 */ |
|
20700 case function_tod_to_ulint : |
|
20701 { |
|
20702 symbol_c *last_type_symbol = NULL; |
|
20703 |
|
20704 { |
|
20705 symbol_c *IN_type_symbol = param_data_type; |
|
20706 last_type_symbol = param_data_type; |
|
20707 |
|
20708 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
20709 { |
|
20710 |
|
20711 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
20712 return return_type_symbol; |
|
20713 |
|
20714 } |
|
20715 |
|
20716 ERROR; |
|
20717 } |
|
20718 |
|
20719 }/*function_tod_to_ulint*/ |
|
20720 break; |
|
20721 |
|
20722 /**** |
|
20723 *TOD_TO_REAL |
|
20724 */ |
|
20725 case function_tod_to_real : |
|
20726 { |
|
20727 symbol_c *last_type_symbol = NULL; |
|
20728 |
|
20729 { |
|
20730 symbol_c *IN_type_symbol = param_data_type; |
|
20731 last_type_symbol = param_data_type; |
|
20732 |
|
20733 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
20734 { |
|
20735 |
|
20736 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
20737 return return_type_symbol; |
|
20738 |
|
20739 } |
|
20740 |
|
20741 ERROR; |
|
20742 } |
|
20743 |
|
20744 }/*function_tod_to_real*/ |
|
20745 break; |
|
20746 |
|
20747 /**** |
|
20748 *TOD_TO_LREAL |
|
20749 */ |
|
20750 case function_tod_to_lreal : |
|
20751 { |
|
20752 symbol_c *last_type_symbol = NULL; |
|
20753 |
|
20754 { |
|
20755 symbol_c *IN_type_symbol = param_data_type; |
|
20756 last_type_symbol = param_data_type; |
|
20757 |
|
20758 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
20759 { |
|
20760 |
|
20761 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
20762 return return_type_symbol; |
|
20763 |
|
20764 } |
|
20765 |
|
20766 ERROR; |
|
20767 } |
|
20768 |
|
20769 }/*function_tod_to_lreal*/ |
|
20770 break; |
|
20771 |
|
20772 /**** |
|
20773 *TOD_TO_STRING |
|
20774 */ |
|
20775 case function_tod_to_string : |
|
20776 { |
|
20777 symbol_c *last_type_symbol = NULL; |
|
20778 |
|
20779 { |
|
20780 symbol_c *IN_type_symbol = param_data_type; |
|
20781 last_type_symbol = param_data_type; |
|
20782 |
|
20783 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
20784 { |
|
20785 |
|
20786 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
20787 return return_type_symbol; |
|
20788 |
|
20789 } |
|
20790 |
|
20791 ERROR; |
|
20792 } |
|
20793 |
|
20794 }/*function_tod_to_string*/ |
|
20795 break; |
|
20796 |
|
20797 /**** |
|
20798 *TOD_TO_BYTE |
|
20799 */ |
|
20800 case function_tod_to_byte : |
|
20801 { |
|
20802 symbol_c *last_type_symbol = NULL; |
|
20803 |
|
20804 { |
|
20805 symbol_c *IN_type_symbol = param_data_type; |
|
20806 last_type_symbol = param_data_type; |
|
20807 |
|
20808 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
20809 { |
|
20810 |
|
20811 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
20812 return return_type_symbol; |
|
20813 |
|
20814 } |
|
20815 |
|
20816 ERROR; |
|
20817 } |
|
20818 |
|
20819 }/*function_tod_to_byte*/ |
|
20820 break; |
|
20821 |
|
20822 /**** |
|
20823 *TOD_TO_WORD |
|
20824 */ |
|
20825 case function_tod_to_word : |
|
20826 { |
|
20827 symbol_c *last_type_symbol = NULL; |
|
20828 |
|
20829 { |
|
20830 symbol_c *IN_type_symbol = param_data_type; |
|
20831 last_type_symbol = param_data_type; |
|
20832 |
|
20833 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
20834 { |
|
20835 |
|
20836 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
20837 return return_type_symbol; |
|
20838 |
|
20839 } |
|
20840 |
|
20841 ERROR; |
|
20842 } |
|
20843 |
|
20844 }/*function_tod_to_word*/ |
|
20845 break; |
|
20846 |
|
20847 /**** |
|
20848 *TOD_TO_DWORD |
|
20849 */ |
|
20850 case function_tod_to_dword : |
|
20851 { |
|
20852 symbol_c *last_type_symbol = NULL; |
|
20853 |
|
20854 { |
|
20855 symbol_c *IN_type_symbol = param_data_type; |
|
20856 last_type_symbol = param_data_type; |
|
20857 |
|
20858 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
20859 { |
|
20860 |
|
20861 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
20862 return return_type_symbol; |
|
20863 |
|
20864 } |
|
20865 |
|
20866 ERROR; |
|
20867 } |
|
20868 |
|
20869 }/*function_tod_to_dword*/ |
|
20870 break; |
|
20871 |
|
20872 /**** |
|
20873 *TOD_TO_LWORD |
|
20874 */ |
|
20875 case function_tod_to_lword : |
|
20876 { |
|
20877 symbol_c *last_type_symbol = NULL; |
|
20878 |
|
20879 { |
|
20880 symbol_c *IN_type_symbol = param_data_type; |
|
20881 last_type_symbol = param_data_type; |
|
20882 |
|
20883 if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol)) |
|
20884 { |
|
20885 |
|
20886 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
20887 return return_type_symbol; |
|
20888 |
|
20889 } |
|
20890 |
|
20891 ERROR; |
|
20892 } |
|
20893 |
|
20894 }/*function_tod_to_lword*/ |
|
20895 break; |
|
20896 |
|
20897 /**** |
|
20898 *DT_TO_SINT |
|
20899 */ |
|
20900 case function_dt_to_sint : |
|
20901 { |
|
20902 symbol_c *last_type_symbol = NULL; |
|
20903 |
|
20904 { |
|
20905 symbol_c *IN_type_symbol = param_data_type; |
|
20906 last_type_symbol = param_data_type; |
|
20907 |
|
20908 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
20909 { |
|
20910 |
|
20911 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
20912 return return_type_symbol; |
|
20913 |
|
20914 } |
|
20915 |
|
20916 ERROR; |
|
20917 } |
|
20918 |
|
20919 }/*function_dt_to_sint*/ |
|
20920 break; |
|
20921 |
|
20922 /**** |
|
20923 *DT_TO_INT |
|
20924 */ |
|
20925 case function_dt_to_int : |
|
20926 { |
|
20927 symbol_c *last_type_symbol = NULL; |
|
20928 |
|
20929 { |
|
20930 symbol_c *IN_type_symbol = param_data_type; |
|
20931 last_type_symbol = param_data_type; |
|
20932 |
|
20933 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
20934 { |
|
20935 |
|
20936 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
20937 return return_type_symbol; |
|
20938 |
|
20939 } |
|
20940 |
|
20941 ERROR; |
|
20942 } |
|
20943 |
|
20944 }/*function_dt_to_int*/ |
|
20945 break; |
|
20946 |
|
20947 /**** |
|
20948 *DT_TO_DINT |
|
20949 */ |
|
20950 case function_dt_to_dint : |
|
20951 { |
|
20952 symbol_c *last_type_symbol = NULL; |
|
20953 |
|
20954 { |
|
20955 symbol_c *IN_type_symbol = param_data_type; |
|
20956 last_type_symbol = param_data_type; |
|
20957 |
|
20958 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
20959 { |
|
20960 |
|
20961 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
20962 return return_type_symbol; |
|
20963 |
|
20964 } |
|
20965 |
|
20966 ERROR; |
|
20967 } |
|
20968 |
|
20969 }/*function_dt_to_dint*/ |
|
20970 break; |
|
20971 |
|
20972 /**** |
|
20973 *DT_TO_LINT |
|
20974 */ |
|
20975 case function_dt_to_lint : |
|
20976 { |
|
20977 symbol_c *last_type_symbol = NULL; |
|
20978 |
|
20979 { |
|
20980 symbol_c *IN_type_symbol = param_data_type; |
|
20981 last_type_symbol = param_data_type; |
|
20982 |
|
20983 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
20984 { |
|
20985 |
|
20986 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
20987 return return_type_symbol; |
|
20988 |
|
20989 } |
|
20990 |
|
20991 ERROR; |
|
20992 } |
|
20993 |
|
20994 }/*function_dt_to_lint*/ |
|
20995 break; |
|
20996 |
|
20997 /**** |
|
20998 *DT_TO_USINT |
|
20999 */ |
|
21000 case function_dt_to_usint : |
|
21001 { |
|
21002 symbol_c *last_type_symbol = NULL; |
|
21003 |
|
21004 { |
|
21005 symbol_c *IN_type_symbol = param_data_type; |
|
21006 last_type_symbol = param_data_type; |
|
21007 |
|
21008 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
21009 { |
|
21010 |
|
21011 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
21012 return return_type_symbol; |
|
21013 |
|
21014 } |
|
21015 |
|
21016 ERROR; |
|
21017 } |
|
21018 |
|
21019 }/*function_dt_to_usint*/ |
|
21020 break; |
|
21021 |
|
21022 /**** |
|
21023 *DT_TO_UINT |
|
21024 */ |
|
21025 case function_dt_to_uint : |
|
21026 { |
|
21027 symbol_c *last_type_symbol = NULL; |
|
21028 |
|
21029 { |
|
21030 symbol_c *IN_type_symbol = param_data_type; |
|
21031 last_type_symbol = param_data_type; |
|
21032 |
|
21033 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
21034 { |
|
21035 |
|
21036 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
21037 return return_type_symbol; |
|
21038 |
|
21039 } |
|
21040 |
|
21041 ERROR; |
|
21042 } |
|
21043 |
|
21044 }/*function_dt_to_uint*/ |
|
21045 break; |
|
21046 |
|
21047 /**** |
|
21048 *DT_TO_UDINT |
|
21049 */ |
|
21050 case function_dt_to_udint : |
|
21051 { |
|
21052 symbol_c *last_type_symbol = NULL; |
|
21053 |
|
21054 { |
|
21055 symbol_c *IN_type_symbol = param_data_type; |
|
21056 last_type_symbol = param_data_type; |
|
21057 |
|
21058 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
21059 { |
|
21060 |
|
21061 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
21062 return return_type_symbol; |
|
21063 |
|
21064 } |
|
21065 |
|
21066 ERROR; |
|
21067 } |
|
21068 |
|
21069 }/*function_dt_to_udint*/ |
|
21070 break; |
|
21071 |
|
21072 /**** |
|
21073 *DT_TO_ULINT |
|
21074 */ |
|
21075 case function_dt_to_ulint : |
|
21076 { |
|
21077 symbol_c *last_type_symbol = NULL; |
|
21078 |
|
21079 { |
|
21080 symbol_c *IN_type_symbol = param_data_type; |
|
21081 last_type_symbol = param_data_type; |
|
21082 |
|
21083 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
21084 { |
|
21085 |
|
21086 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
21087 return return_type_symbol; |
|
21088 |
|
21089 } |
|
21090 |
|
21091 ERROR; |
|
21092 } |
|
21093 |
|
21094 }/*function_dt_to_ulint*/ |
|
21095 break; |
|
21096 |
|
21097 /**** |
|
21098 *DT_TO_REAL |
|
21099 */ |
|
21100 case function_dt_to_real : |
|
21101 { |
|
21102 symbol_c *last_type_symbol = NULL; |
|
21103 |
|
21104 { |
|
21105 symbol_c *IN_type_symbol = param_data_type; |
|
21106 last_type_symbol = param_data_type; |
|
21107 |
|
21108 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
21109 { |
|
21110 |
|
21111 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
21112 return return_type_symbol; |
|
21113 |
|
21114 } |
|
21115 |
|
21116 ERROR; |
|
21117 } |
|
21118 |
|
21119 }/*function_dt_to_real*/ |
|
21120 break; |
|
21121 |
|
21122 /**** |
|
21123 *DT_TO_LREAL |
|
21124 */ |
|
21125 case function_dt_to_lreal : |
|
21126 { |
|
21127 symbol_c *last_type_symbol = NULL; |
|
21128 |
|
21129 { |
|
21130 symbol_c *IN_type_symbol = param_data_type; |
|
21131 last_type_symbol = param_data_type; |
|
21132 |
|
21133 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
21134 { |
|
21135 |
|
21136 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
21137 return return_type_symbol; |
|
21138 |
|
21139 } |
|
21140 |
|
21141 ERROR; |
|
21142 } |
|
21143 |
|
21144 }/*function_dt_to_lreal*/ |
|
21145 break; |
|
21146 |
|
21147 /**** |
|
21148 *DT_TO_STRING |
|
21149 */ |
|
21150 case function_dt_to_string : |
|
21151 { |
|
21152 symbol_c *last_type_symbol = NULL; |
|
21153 |
|
21154 { |
|
21155 symbol_c *IN_type_symbol = param_data_type; |
|
21156 last_type_symbol = param_data_type; |
|
21157 |
|
21158 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
21159 { |
|
21160 |
|
21161 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
21162 return return_type_symbol; |
|
21163 |
|
21164 } |
|
21165 |
|
21166 ERROR; |
|
21167 } |
|
21168 |
|
21169 }/*function_dt_to_string*/ |
|
21170 break; |
|
21171 |
|
21172 /**** |
|
21173 *DT_TO_BYTE |
|
21174 */ |
|
21175 case function_dt_to_byte : |
|
21176 { |
|
21177 symbol_c *last_type_symbol = NULL; |
|
21178 |
|
21179 { |
|
21180 symbol_c *IN_type_symbol = param_data_type; |
|
21181 last_type_symbol = param_data_type; |
|
21182 |
|
21183 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
21184 { |
|
21185 |
|
21186 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
21187 return return_type_symbol; |
|
21188 |
|
21189 } |
|
21190 |
|
21191 ERROR; |
|
21192 } |
|
21193 |
|
21194 }/*function_dt_to_byte*/ |
|
21195 break; |
|
21196 |
|
21197 /**** |
|
21198 *DT_TO_WORD |
|
21199 */ |
|
21200 case function_dt_to_word : |
|
21201 { |
|
21202 symbol_c *last_type_symbol = NULL; |
|
21203 |
|
21204 { |
|
21205 symbol_c *IN_type_symbol = param_data_type; |
|
21206 last_type_symbol = param_data_type; |
|
21207 |
|
21208 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
21209 { |
|
21210 |
|
21211 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
21212 return return_type_symbol; |
|
21213 |
|
21214 } |
|
21215 |
|
21216 ERROR; |
|
21217 } |
|
21218 |
|
21219 }/*function_dt_to_word*/ |
|
21220 break; |
|
21221 |
|
21222 /**** |
|
21223 *DT_TO_DWORD |
|
21224 */ |
|
21225 case function_dt_to_dword : |
|
21226 { |
|
21227 symbol_c *last_type_symbol = NULL; |
|
21228 |
|
21229 { |
|
21230 symbol_c *IN_type_symbol = param_data_type; |
|
21231 last_type_symbol = param_data_type; |
|
21232 |
|
21233 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
21234 { |
|
21235 |
|
21236 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
21237 return return_type_symbol; |
|
21238 |
|
21239 } |
|
21240 |
|
21241 ERROR; |
|
21242 } |
|
21243 |
|
21244 }/*function_dt_to_dword*/ |
|
21245 break; |
|
21246 |
|
21247 /**** |
|
21248 *DT_TO_LWORD |
|
21249 */ |
|
21250 case function_dt_to_lword : |
|
21251 { |
|
21252 symbol_c *last_type_symbol = NULL; |
|
21253 |
|
21254 { |
|
21255 symbol_c *IN_type_symbol = param_data_type; |
|
21256 last_type_symbol = param_data_type; |
|
21257 |
|
21258 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
|
21259 { |
|
21260 |
|
21261 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
21262 return return_type_symbol; |
|
21263 |
|
21264 } |
|
21265 |
|
21266 ERROR; |
|
21267 } |
|
21268 |
|
21269 }/*function_dt_to_lword*/ |
|
21270 break; |
|
21271 |
|
21272 /**** |
|
21273 *STRING_TO_BOOL |
|
21274 */ |
|
21275 case function_string_to_bool : |
|
21276 { |
|
21277 symbol_c *last_type_symbol = NULL; |
|
21278 |
|
21279 { |
|
21280 symbol_c *IN_type_symbol = param_data_type; |
|
21281 last_type_symbol = param_data_type; |
|
21282 |
|
21283 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
19912 { |
21284 { |
19913 |
21285 |
19914 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
21286 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
19915 return return_type_symbol; |
21287 return return_type_symbol; |
19916 |
21288 |
19917 } |
21289 } |
19918 |
21290 |
19919 ERROR; |
21291 ERROR; |
19920 } |
21292 } |
19921 |
21293 |
19922 }/*function_time_to_bool*/ |
21294 }/*function_string_to_bool*/ |
19923 break; |
21295 break; |
19924 |
21296 |
19925 /**** |
21297 /**** |
19926 *TIME_TO_SINT |
21298 *STRING_TO_SINT |
19927 */ |
21299 */ |
19928 case function_time_to_sint : |
21300 case function_string_to_sint : |
19929 { |
21301 { |
19930 symbol_c *last_type_symbol = NULL; |
21302 symbol_c *last_type_symbol = NULL; |
19931 |
21303 |
19932 { |
21304 { |
19933 symbol_c *IN_type_symbol = param_data_type; |
21305 symbol_c *IN_type_symbol = param_data_type; |
19934 last_type_symbol = param_data_type; |
21306 last_type_symbol = param_data_type; |
19935 |
21307 |
19936 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
21308 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
19937 { |
21309 { |
19938 |
21310 |
19939 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
21311 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
19940 return return_type_symbol; |
21312 return return_type_symbol; |
19941 |
21313 |
19942 } |
21314 } |
19943 |
21315 |
19944 ERROR; |
21316 ERROR; |
19945 } |
21317 } |
19946 |
21318 |
19947 }/*function_time_to_sint*/ |
21319 }/*function_string_to_sint*/ |
19948 break; |
21320 break; |
19949 |
21321 |
19950 /**** |
21322 /**** |
19951 *TIME_TO_INT |
21323 *STRING_TO_INT |
19952 */ |
21324 */ |
19953 case function_time_to_int : |
21325 case function_string_to_int : |
19954 { |
21326 { |
19955 symbol_c *last_type_symbol = NULL; |
21327 symbol_c *last_type_symbol = NULL; |
19956 |
21328 |
19957 { |
21329 { |
19958 symbol_c *IN_type_symbol = param_data_type; |
21330 symbol_c *IN_type_symbol = param_data_type; |
19959 last_type_symbol = param_data_type; |
21331 last_type_symbol = param_data_type; |
19960 |
21332 |
19961 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
21333 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
19962 { |
21334 { |
19963 |
21335 |
19964 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
21336 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
19965 return return_type_symbol; |
21337 return return_type_symbol; |
19966 |
21338 |
19967 } |
21339 } |
19968 |
21340 |
19969 ERROR; |
21341 ERROR; |
19970 } |
21342 } |
19971 |
21343 |
19972 }/*function_time_to_int*/ |
21344 }/*function_string_to_int*/ |
19973 break; |
21345 break; |
19974 |
21346 |
19975 /**** |
21347 /**** |
19976 *TIME_TO_DINT |
21348 *STRING_TO_DINT |
19977 */ |
21349 */ |
19978 case function_time_to_dint : |
21350 case function_string_to_dint : |
19979 { |
21351 { |
19980 symbol_c *last_type_symbol = NULL; |
21352 symbol_c *last_type_symbol = NULL; |
19981 |
21353 |
19982 { |
21354 { |
19983 symbol_c *IN_type_symbol = param_data_type; |
21355 symbol_c *IN_type_symbol = param_data_type; |
19984 last_type_symbol = param_data_type; |
21356 last_type_symbol = param_data_type; |
19985 |
21357 |
19986 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
21358 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
19987 { |
21359 { |
19988 |
21360 |
19989 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
21361 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
19990 return return_type_symbol; |
21362 return return_type_symbol; |
19991 |
21363 |
19992 } |
21364 } |
19993 |
21365 |
19994 ERROR; |
21366 ERROR; |
19995 } |
21367 } |
19996 |
21368 |
19997 }/*function_time_to_dint*/ |
21369 }/*function_string_to_dint*/ |
19998 break; |
21370 break; |
19999 |
21371 |
20000 /**** |
21372 /**** |
20001 *TIME_TO_LINT |
21373 *STRING_TO_LINT |
20002 */ |
21374 */ |
20003 case function_time_to_lint : |
21375 case function_string_to_lint : |
20004 { |
21376 { |
20005 symbol_c *last_type_symbol = NULL; |
21377 symbol_c *last_type_symbol = NULL; |
20006 |
21378 |
20007 { |
21379 { |
20008 symbol_c *IN_type_symbol = param_data_type; |
21380 symbol_c *IN_type_symbol = param_data_type; |
20009 last_type_symbol = param_data_type; |
21381 last_type_symbol = param_data_type; |
20010 |
21382 |
20011 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
21383 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
20012 { |
21384 { |
20013 |
21385 |
20014 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
21386 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
20015 return return_type_symbol; |
21387 return return_type_symbol; |
20016 |
21388 |
20017 } |
21389 } |
20018 |
21390 |
20019 ERROR; |
21391 ERROR; |
20020 } |
21392 } |
20021 |
21393 |
20022 }/*function_time_to_lint*/ |
21394 }/*function_string_to_lint*/ |
20023 break; |
21395 break; |
20024 |
21396 |
20025 /**** |
21397 /**** |
20026 *TIME_TO_USINT |
21398 *STRING_TO_USINT |
20027 */ |
21399 */ |
20028 case function_time_to_usint : |
21400 case function_string_to_usint : |
20029 { |
21401 { |
20030 symbol_c *last_type_symbol = NULL; |
21402 symbol_c *last_type_symbol = NULL; |
20031 |
21403 |
20032 { |
21404 { |
20033 symbol_c *IN_type_symbol = param_data_type; |
21405 symbol_c *IN_type_symbol = param_data_type; |
20034 last_type_symbol = param_data_type; |
21406 last_type_symbol = param_data_type; |
20035 |
21407 |
20036 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
21408 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
20037 { |
21409 { |
20038 |
21410 |
20039 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
21411 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
20040 return return_type_symbol; |
21412 return return_type_symbol; |
20041 |
21413 |
20042 } |
21414 } |
20043 |
21415 |
20044 ERROR; |
21416 ERROR; |
20045 } |
21417 } |
20046 |
21418 |
20047 }/*function_time_to_usint*/ |
21419 }/*function_string_to_usint*/ |
20048 break; |
21420 break; |
20049 |
21421 |
20050 /**** |
21422 /**** |
20051 *TIME_TO_UINT |
21423 *STRING_TO_UINT |
20052 */ |
21424 */ |
20053 case function_time_to_uint : |
21425 case function_string_to_uint : |
20054 { |
21426 { |
20055 symbol_c *last_type_symbol = NULL; |
21427 symbol_c *last_type_symbol = NULL; |
20056 |
21428 |
20057 { |
21429 { |
20058 symbol_c *IN_type_symbol = param_data_type; |
21430 symbol_c *IN_type_symbol = param_data_type; |
20059 last_type_symbol = param_data_type; |
21431 last_type_symbol = param_data_type; |
20060 |
21432 |
20061 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
21433 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
20062 { |
21434 { |
20063 |
21435 |
20064 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
21436 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
20065 return return_type_symbol; |
21437 return return_type_symbol; |
20066 |
21438 |
20067 } |
21439 } |
20068 |
21440 |
20069 ERROR; |
21441 ERROR; |
20070 } |
21442 } |
20071 |
21443 |
20072 }/*function_time_to_uint*/ |
21444 }/*function_string_to_uint*/ |
20073 break; |
21445 break; |
20074 |
21446 |
20075 /**** |
21447 /**** |
20076 *TIME_TO_UDINT |
21448 *STRING_TO_UDINT |
20077 */ |
21449 */ |
20078 case function_time_to_udint : |
21450 case function_string_to_udint : |
20079 { |
21451 { |
20080 symbol_c *last_type_symbol = NULL; |
21452 symbol_c *last_type_symbol = NULL; |
20081 |
21453 |
20082 { |
21454 { |
20083 symbol_c *IN_type_symbol = param_data_type; |
21455 symbol_c *IN_type_symbol = param_data_type; |
20084 last_type_symbol = param_data_type; |
21456 last_type_symbol = param_data_type; |
20085 |
21457 |
20086 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
21458 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
20087 { |
21459 { |
20088 |
21460 |
20089 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
21461 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
20090 return return_type_symbol; |
21462 return return_type_symbol; |
20091 |
21463 |
20092 } |
21464 } |
20093 |
21465 |
20094 ERROR; |
21466 ERROR; |
20095 } |
21467 } |
20096 |
21468 |
20097 }/*function_time_to_udint*/ |
21469 }/*function_string_to_udint*/ |
20098 break; |
21470 break; |
20099 |
21471 |
20100 /**** |
21472 /**** |
20101 *TIME_TO_ULINT |
21473 *STRING_TO_ULINT |
20102 */ |
21474 */ |
20103 case function_time_to_ulint : |
21475 case function_string_to_ulint : |
20104 { |
21476 { |
20105 symbol_c *last_type_symbol = NULL; |
21477 symbol_c *last_type_symbol = NULL; |
20106 |
21478 |
20107 { |
21479 { |
20108 symbol_c *IN_type_symbol = param_data_type; |
21480 symbol_c *IN_type_symbol = param_data_type; |
20109 last_type_symbol = param_data_type; |
21481 last_type_symbol = param_data_type; |
20110 |
21482 |
20111 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
21483 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
20112 { |
21484 { |
20113 |
21485 |
20114 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
21486 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
20115 return return_type_symbol; |
21487 return return_type_symbol; |
20116 |
21488 |
20117 } |
21489 } |
20118 |
21490 |
20119 ERROR; |
21491 ERROR; |
20120 } |
21492 } |
20121 |
21493 |
20122 }/*function_time_to_ulint*/ |
21494 }/*function_string_to_ulint*/ |
20123 break; |
21495 break; |
20124 |
21496 |
20125 /**** |
21497 /**** |
20126 *TIME_TO_REAL |
21498 *STRING_TO_REAL |
20127 */ |
21499 */ |
20128 case function_time_to_real : |
21500 case function_string_to_real : |
20129 { |
21501 { |
20130 symbol_c *last_type_symbol = NULL; |
21502 symbol_c *last_type_symbol = NULL; |
20131 |
21503 |
20132 { |
21504 { |
20133 symbol_c *IN_type_symbol = param_data_type; |
21505 symbol_c *IN_type_symbol = param_data_type; |
20134 last_type_symbol = param_data_type; |
21506 last_type_symbol = param_data_type; |
20135 |
21507 |
20136 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
21508 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
20137 { |
21509 { |
20138 |
21510 |
20139 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
21511 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
20140 return return_type_symbol; |
21512 return return_type_symbol; |
20141 |
21513 |
20142 } |
21514 } |
20143 |
21515 |
20144 ERROR; |
21516 ERROR; |
20145 } |
21517 } |
20146 |
21518 |
20147 }/*function_time_to_real*/ |
21519 }/*function_string_to_real*/ |
20148 break; |
21520 break; |
20149 |
21521 |
20150 /**** |
21522 /**** |
20151 *TIME_TO_LREAL |
21523 *STRING_TO_LREAL |
20152 */ |
21524 */ |
20153 case function_time_to_lreal : |
21525 case function_string_to_lreal : |
20154 { |
21526 { |
20155 symbol_c *last_type_symbol = NULL; |
21527 symbol_c *last_type_symbol = NULL; |
20156 |
21528 |
20157 { |
21529 { |
20158 symbol_c *IN_type_symbol = param_data_type; |
21530 symbol_c *IN_type_symbol = param_data_type; |
20159 last_type_symbol = param_data_type; |
21531 last_type_symbol = param_data_type; |
20160 |
21532 |
20161 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
21533 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
20162 { |
21534 { |
20163 |
21535 |
20164 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
21536 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
20165 return return_type_symbol; |
21537 return return_type_symbol; |
20166 |
21538 |
20167 } |
21539 } |
20168 |
21540 |
20169 ERROR; |
21541 ERROR; |
20170 } |
21542 } |
20171 |
21543 |
20172 }/*function_time_to_lreal*/ |
21544 }/*function_string_to_lreal*/ |
20173 break; |
21545 break; |
20174 |
21546 |
20175 /**** |
21547 /**** |
20176 *TIME_TO_STRING |
21548 *STRING_TO_TIME |
20177 */ |
21549 */ |
20178 case function_time_to_string : |
21550 case function_string_to_time : |
20179 { |
21551 { |
20180 symbol_c *last_type_symbol = NULL; |
21552 symbol_c *last_type_symbol = NULL; |
20181 |
21553 |
20182 { |
21554 { |
20183 symbol_c *IN_type_symbol = param_data_type; |
21555 symbol_c *IN_type_symbol = param_data_type; |
20184 last_type_symbol = param_data_type; |
21556 last_type_symbol = param_data_type; |
20185 |
21557 |
20186 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
21558 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
|
21559 { |
|
21560 |
|
21561 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
21562 return return_type_symbol; |
|
21563 |
|
21564 } |
|
21565 |
|
21566 ERROR; |
|
21567 } |
|
21568 |
|
21569 }/*function_string_to_time*/ |
|
21570 break; |
|
21571 |
|
21572 /**** |
|
21573 *STRING_TO_DATE |
|
21574 */ |
|
21575 case function_string_to_date : |
|
21576 { |
|
21577 symbol_c *last_type_symbol = NULL; |
|
21578 |
|
21579 { |
|
21580 symbol_c *IN_type_symbol = param_data_type; |
|
21581 last_type_symbol = param_data_type; |
|
21582 |
|
21583 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
|
21584 { |
|
21585 |
|
21586 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
21587 return return_type_symbol; |
|
21588 |
|
21589 } |
|
21590 |
|
21591 ERROR; |
|
21592 } |
|
21593 |
|
21594 }/*function_string_to_date*/ |
|
21595 break; |
|
21596 |
|
21597 /**** |
|
21598 *STRING_TO_TOD |
|
21599 */ |
|
21600 case function_string_to_tod : |
|
21601 { |
|
21602 symbol_c *last_type_symbol = NULL; |
|
21603 |
|
21604 { |
|
21605 symbol_c *IN_type_symbol = param_data_type; |
|
21606 last_type_symbol = param_data_type; |
|
21607 |
|
21608 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
|
21609 { |
|
21610 |
|
21611 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
21612 return return_type_symbol; |
|
21613 |
|
21614 } |
|
21615 |
|
21616 ERROR; |
|
21617 } |
|
21618 |
|
21619 }/*function_string_to_tod*/ |
|
21620 break; |
|
21621 |
|
21622 /**** |
|
21623 *STRING_TO_DT |
|
21624 */ |
|
21625 case function_string_to_dt : |
|
21626 { |
|
21627 symbol_c *last_type_symbol = NULL; |
|
21628 |
|
21629 { |
|
21630 symbol_c *IN_type_symbol = param_data_type; |
|
21631 last_type_symbol = param_data_type; |
|
21632 |
|
21633 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
|
21634 { |
|
21635 |
|
21636 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
21637 return return_type_symbol; |
|
21638 |
|
21639 } |
|
21640 |
|
21641 ERROR; |
|
21642 } |
|
21643 |
|
21644 }/*function_string_to_dt*/ |
|
21645 break; |
|
21646 |
|
21647 /**** |
|
21648 *STRING_TO_BYTE |
|
21649 */ |
|
21650 case function_string_to_byte : |
|
21651 { |
|
21652 symbol_c *last_type_symbol = NULL; |
|
21653 |
|
21654 { |
|
21655 symbol_c *IN_type_symbol = param_data_type; |
|
21656 last_type_symbol = param_data_type; |
|
21657 |
|
21658 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
|
21659 { |
|
21660 |
|
21661 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
21662 return return_type_symbol; |
|
21663 |
|
21664 } |
|
21665 |
|
21666 ERROR; |
|
21667 } |
|
21668 |
|
21669 }/*function_string_to_byte*/ |
|
21670 break; |
|
21671 |
|
21672 /**** |
|
21673 *STRING_TO_WORD |
|
21674 */ |
|
21675 case function_string_to_word : |
|
21676 { |
|
21677 symbol_c *last_type_symbol = NULL; |
|
21678 |
|
21679 { |
|
21680 symbol_c *IN_type_symbol = param_data_type; |
|
21681 last_type_symbol = param_data_type; |
|
21682 |
|
21683 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
|
21684 { |
|
21685 |
|
21686 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
21687 return return_type_symbol; |
|
21688 |
|
21689 } |
|
21690 |
|
21691 ERROR; |
|
21692 } |
|
21693 |
|
21694 }/*function_string_to_word*/ |
|
21695 break; |
|
21696 |
|
21697 /**** |
|
21698 *STRING_TO_DWORD |
|
21699 */ |
|
21700 case function_string_to_dword : |
|
21701 { |
|
21702 symbol_c *last_type_symbol = NULL; |
|
21703 |
|
21704 { |
|
21705 symbol_c *IN_type_symbol = param_data_type; |
|
21706 last_type_symbol = param_data_type; |
|
21707 |
|
21708 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
|
21709 { |
|
21710 |
|
21711 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
21712 return return_type_symbol; |
|
21713 |
|
21714 } |
|
21715 |
|
21716 ERROR; |
|
21717 } |
|
21718 |
|
21719 }/*function_string_to_dword*/ |
|
21720 break; |
|
21721 |
|
21722 /**** |
|
21723 *STRING_TO_LWORD |
|
21724 */ |
|
21725 case function_string_to_lword : |
|
21726 { |
|
21727 symbol_c *last_type_symbol = NULL; |
|
21728 |
|
21729 { |
|
21730 symbol_c *IN_type_symbol = param_data_type; |
|
21731 last_type_symbol = param_data_type; |
|
21732 |
|
21733 if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol)) |
|
21734 { |
|
21735 |
|
21736 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
21737 return return_type_symbol; |
|
21738 |
|
21739 } |
|
21740 |
|
21741 ERROR; |
|
21742 } |
|
21743 |
|
21744 }/*function_string_to_lword*/ |
|
21745 break; |
|
21746 |
|
21747 /**** |
|
21748 *BYTE_TO_BOOL |
|
21749 */ |
|
21750 case function_byte_to_bool : |
|
21751 { |
|
21752 symbol_c *last_type_symbol = NULL; |
|
21753 |
|
21754 { |
|
21755 symbol_c *IN_type_symbol = param_data_type; |
|
21756 last_type_symbol = param_data_type; |
|
21757 |
|
21758 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
21759 { |
|
21760 |
|
21761 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
21762 return return_type_symbol; |
|
21763 |
|
21764 } |
|
21765 |
|
21766 ERROR; |
|
21767 } |
|
21768 |
|
21769 }/*function_byte_to_bool*/ |
|
21770 break; |
|
21771 |
|
21772 /**** |
|
21773 *BYTE_TO_SINT |
|
21774 */ |
|
21775 case function_byte_to_sint : |
|
21776 { |
|
21777 symbol_c *last_type_symbol = NULL; |
|
21778 |
|
21779 { |
|
21780 symbol_c *IN_type_symbol = param_data_type; |
|
21781 last_type_symbol = param_data_type; |
|
21782 |
|
21783 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
21784 { |
|
21785 |
|
21786 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
21787 return return_type_symbol; |
|
21788 |
|
21789 } |
|
21790 |
|
21791 ERROR; |
|
21792 } |
|
21793 |
|
21794 }/*function_byte_to_sint*/ |
|
21795 break; |
|
21796 |
|
21797 /**** |
|
21798 *BYTE_TO_INT |
|
21799 */ |
|
21800 case function_byte_to_int : |
|
21801 { |
|
21802 symbol_c *last_type_symbol = NULL; |
|
21803 |
|
21804 { |
|
21805 symbol_c *IN_type_symbol = param_data_type; |
|
21806 last_type_symbol = param_data_type; |
|
21807 |
|
21808 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
21809 { |
|
21810 |
|
21811 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
21812 return return_type_symbol; |
|
21813 |
|
21814 } |
|
21815 |
|
21816 ERROR; |
|
21817 } |
|
21818 |
|
21819 }/*function_byte_to_int*/ |
|
21820 break; |
|
21821 |
|
21822 /**** |
|
21823 *BYTE_TO_DINT |
|
21824 */ |
|
21825 case function_byte_to_dint : |
|
21826 { |
|
21827 symbol_c *last_type_symbol = NULL; |
|
21828 |
|
21829 { |
|
21830 symbol_c *IN_type_symbol = param_data_type; |
|
21831 last_type_symbol = param_data_type; |
|
21832 |
|
21833 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
21834 { |
|
21835 |
|
21836 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
21837 return return_type_symbol; |
|
21838 |
|
21839 } |
|
21840 |
|
21841 ERROR; |
|
21842 } |
|
21843 |
|
21844 }/*function_byte_to_dint*/ |
|
21845 break; |
|
21846 |
|
21847 /**** |
|
21848 *BYTE_TO_LINT |
|
21849 */ |
|
21850 case function_byte_to_lint : |
|
21851 { |
|
21852 symbol_c *last_type_symbol = NULL; |
|
21853 |
|
21854 { |
|
21855 symbol_c *IN_type_symbol = param_data_type; |
|
21856 last_type_symbol = param_data_type; |
|
21857 |
|
21858 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
21859 { |
|
21860 |
|
21861 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
21862 return return_type_symbol; |
|
21863 |
|
21864 } |
|
21865 |
|
21866 ERROR; |
|
21867 } |
|
21868 |
|
21869 }/*function_byte_to_lint*/ |
|
21870 break; |
|
21871 |
|
21872 /**** |
|
21873 *BYTE_TO_USINT |
|
21874 */ |
|
21875 case function_byte_to_usint : |
|
21876 { |
|
21877 symbol_c *last_type_symbol = NULL; |
|
21878 |
|
21879 { |
|
21880 symbol_c *IN_type_symbol = param_data_type; |
|
21881 last_type_symbol = param_data_type; |
|
21882 |
|
21883 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
21884 { |
|
21885 |
|
21886 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
21887 return return_type_symbol; |
|
21888 |
|
21889 } |
|
21890 |
|
21891 ERROR; |
|
21892 } |
|
21893 |
|
21894 }/*function_byte_to_usint*/ |
|
21895 break; |
|
21896 |
|
21897 /**** |
|
21898 *BYTE_TO_UINT |
|
21899 */ |
|
21900 case function_byte_to_uint : |
|
21901 { |
|
21902 symbol_c *last_type_symbol = NULL; |
|
21903 |
|
21904 { |
|
21905 symbol_c *IN_type_symbol = param_data_type; |
|
21906 last_type_symbol = param_data_type; |
|
21907 |
|
21908 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
21909 { |
|
21910 |
|
21911 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
21912 return return_type_symbol; |
|
21913 |
|
21914 } |
|
21915 |
|
21916 ERROR; |
|
21917 } |
|
21918 |
|
21919 }/*function_byte_to_uint*/ |
|
21920 break; |
|
21921 |
|
21922 /**** |
|
21923 *BYTE_TO_UDINT |
|
21924 */ |
|
21925 case function_byte_to_udint : |
|
21926 { |
|
21927 symbol_c *last_type_symbol = NULL; |
|
21928 |
|
21929 { |
|
21930 symbol_c *IN_type_symbol = param_data_type; |
|
21931 last_type_symbol = param_data_type; |
|
21932 |
|
21933 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
21934 { |
|
21935 |
|
21936 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
21937 return return_type_symbol; |
|
21938 |
|
21939 } |
|
21940 |
|
21941 ERROR; |
|
21942 } |
|
21943 |
|
21944 }/*function_byte_to_udint*/ |
|
21945 break; |
|
21946 |
|
21947 /**** |
|
21948 *BYTE_TO_ULINT |
|
21949 */ |
|
21950 case function_byte_to_ulint : |
|
21951 { |
|
21952 symbol_c *last_type_symbol = NULL; |
|
21953 |
|
21954 { |
|
21955 symbol_c *IN_type_symbol = param_data_type; |
|
21956 last_type_symbol = param_data_type; |
|
21957 |
|
21958 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
21959 { |
|
21960 |
|
21961 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
21962 return return_type_symbol; |
|
21963 |
|
21964 } |
|
21965 |
|
21966 ERROR; |
|
21967 } |
|
21968 |
|
21969 }/*function_byte_to_ulint*/ |
|
21970 break; |
|
21971 |
|
21972 /**** |
|
21973 *BYTE_TO_REAL |
|
21974 */ |
|
21975 case function_byte_to_real : |
|
21976 { |
|
21977 symbol_c *last_type_symbol = NULL; |
|
21978 |
|
21979 { |
|
21980 symbol_c *IN_type_symbol = param_data_type; |
|
21981 last_type_symbol = param_data_type; |
|
21982 |
|
21983 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
21984 { |
|
21985 |
|
21986 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
21987 return return_type_symbol; |
|
21988 |
|
21989 } |
|
21990 |
|
21991 ERROR; |
|
21992 } |
|
21993 |
|
21994 }/*function_byte_to_real*/ |
|
21995 break; |
|
21996 |
|
21997 /**** |
|
21998 *BYTE_TO_LREAL |
|
21999 */ |
|
22000 case function_byte_to_lreal : |
|
22001 { |
|
22002 symbol_c *last_type_symbol = NULL; |
|
22003 |
|
22004 { |
|
22005 symbol_c *IN_type_symbol = param_data_type; |
|
22006 last_type_symbol = param_data_type; |
|
22007 |
|
22008 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
22009 { |
|
22010 |
|
22011 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
22012 return return_type_symbol; |
|
22013 |
|
22014 } |
|
22015 |
|
22016 ERROR; |
|
22017 } |
|
22018 |
|
22019 }/*function_byte_to_lreal*/ |
|
22020 break; |
|
22021 |
|
22022 /**** |
|
22023 *BYTE_TO_TIME |
|
22024 */ |
|
22025 case function_byte_to_time : |
|
22026 { |
|
22027 symbol_c *last_type_symbol = NULL; |
|
22028 |
|
22029 { |
|
22030 symbol_c *IN_type_symbol = param_data_type; |
|
22031 last_type_symbol = param_data_type; |
|
22032 |
|
22033 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
22034 { |
|
22035 |
|
22036 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
22037 return return_type_symbol; |
|
22038 |
|
22039 } |
|
22040 |
|
22041 ERROR; |
|
22042 } |
|
22043 |
|
22044 }/*function_byte_to_time*/ |
|
22045 break; |
|
22046 |
|
22047 /**** |
|
22048 *BYTE_TO_DATE |
|
22049 */ |
|
22050 case function_byte_to_date : |
|
22051 { |
|
22052 symbol_c *last_type_symbol = NULL; |
|
22053 |
|
22054 { |
|
22055 symbol_c *IN_type_symbol = param_data_type; |
|
22056 last_type_symbol = param_data_type; |
|
22057 |
|
22058 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
22059 { |
|
22060 |
|
22061 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
22062 return return_type_symbol; |
|
22063 |
|
22064 } |
|
22065 |
|
22066 ERROR; |
|
22067 } |
|
22068 |
|
22069 }/*function_byte_to_date*/ |
|
22070 break; |
|
22071 |
|
22072 /**** |
|
22073 *BYTE_TO_TOD |
|
22074 */ |
|
22075 case function_byte_to_tod : |
|
22076 { |
|
22077 symbol_c *last_type_symbol = NULL; |
|
22078 |
|
22079 { |
|
22080 symbol_c *IN_type_symbol = param_data_type; |
|
22081 last_type_symbol = param_data_type; |
|
22082 |
|
22083 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
22084 { |
|
22085 |
|
22086 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
22087 return return_type_symbol; |
|
22088 |
|
22089 } |
|
22090 |
|
22091 ERROR; |
|
22092 } |
|
22093 |
|
22094 }/*function_byte_to_tod*/ |
|
22095 break; |
|
22096 |
|
22097 /**** |
|
22098 *BYTE_TO_DT |
|
22099 */ |
|
22100 case function_byte_to_dt : |
|
22101 { |
|
22102 symbol_c *last_type_symbol = NULL; |
|
22103 |
|
22104 { |
|
22105 symbol_c *IN_type_symbol = param_data_type; |
|
22106 last_type_symbol = param_data_type; |
|
22107 |
|
22108 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
22109 { |
|
22110 |
|
22111 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
22112 return return_type_symbol; |
|
22113 |
|
22114 } |
|
22115 |
|
22116 ERROR; |
|
22117 } |
|
22118 |
|
22119 }/*function_byte_to_dt*/ |
|
22120 break; |
|
22121 |
|
22122 /**** |
|
22123 *BYTE_TO_STRING |
|
22124 */ |
|
22125 case function_byte_to_string : |
|
22126 { |
|
22127 symbol_c *last_type_symbol = NULL; |
|
22128 |
|
22129 { |
|
22130 symbol_c *IN_type_symbol = param_data_type; |
|
22131 last_type_symbol = param_data_type; |
|
22132 |
|
22133 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
20187 { |
22134 { |
20188 |
22135 |
20189 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
22136 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
20190 return return_type_symbol; |
22137 return return_type_symbol; |
20191 |
22138 |
20192 } |
22139 } |
20193 |
22140 |
20194 ERROR; |
22141 ERROR; |
20195 } |
22142 } |
20196 |
22143 |
20197 }/*function_time_to_string*/ |
22144 }/*function_byte_to_string*/ |
20198 break; |
22145 break; |
20199 |
22146 |
20200 /**** |
22147 /**** |
20201 *TIME_TO_BYTE |
22148 *BYTE_TO_WORD |
20202 */ |
22149 */ |
20203 case function_time_to_byte : |
22150 case function_byte_to_word : |
20204 { |
22151 { |
20205 symbol_c *last_type_symbol = NULL; |
22152 symbol_c *last_type_symbol = NULL; |
20206 |
22153 |
20207 { |
22154 { |
20208 symbol_c *IN_type_symbol = param_data_type; |
22155 symbol_c *IN_type_symbol = param_data_type; |
20209 last_type_symbol = param_data_type; |
22156 last_type_symbol = param_data_type; |
20210 |
22157 |
20211 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
22158 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
22159 { |
|
22160 |
|
22161 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
22162 return return_type_symbol; |
|
22163 |
|
22164 } |
|
22165 |
|
22166 ERROR; |
|
22167 } |
|
22168 |
|
22169 }/*function_byte_to_word*/ |
|
22170 break; |
|
22171 |
|
22172 /**** |
|
22173 *BYTE_TO_DWORD |
|
22174 */ |
|
22175 case function_byte_to_dword : |
|
22176 { |
|
22177 symbol_c *last_type_symbol = NULL; |
|
22178 |
|
22179 { |
|
22180 symbol_c *IN_type_symbol = param_data_type; |
|
22181 last_type_symbol = param_data_type; |
|
22182 |
|
22183 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
22184 { |
|
22185 |
|
22186 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
22187 return return_type_symbol; |
|
22188 |
|
22189 } |
|
22190 |
|
22191 ERROR; |
|
22192 } |
|
22193 |
|
22194 }/*function_byte_to_dword*/ |
|
22195 break; |
|
22196 |
|
22197 /**** |
|
22198 *BYTE_TO_LWORD |
|
22199 */ |
|
22200 case function_byte_to_lword : |
|
22201 { |
|
22202 symbol_c *last_type_symbol = NULL; |
|
22203 |
|
22204 { |
|
22205 symbol_c *IN_type_symbol = param_data_type; |
|
22206 last_type_symbol = param_data_type; |
|
22207 |
|
22208 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
|
22209 { |
|
22210 |
|
22211 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
22212 return return_type_symbol; |
|
22213 |
|
22214 } |
|
22215 |
|
22216 ERROR; |
|
22217 } |
|
22218 |
|
22219 }/*function_byte_to_lword*/ |
|
22220 break; |
|
22221 |
|
22222 /**** |
|
22223 *WORD_TO_BOOL |
|
22224 */ |
|
22225 case function_word_to_bool : |
|
22226 { |
|
22227 symbol_c *last_type_symbol = NULL; |
|
22228 |
|
22229 { |
|
22230 symbol_c *IN_type_symbol = param_data_type; |
|
22231 last_type_symbol = param_data_type; |
|
22232 |
|
22233 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22234 { |
|
22235 |
|
22236 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
22237 return return_type_symbol; |
|
22238 |
|
22239 } |
|
22240 |
|
22241 ERROR; |
|
22242 } |
|
22243 |
|
22244 }/*function_word_to_bool*/ |
|
22245 break; |
|
22246 |
|
22247 /**** |
|
22248 *WORD_TO_SINT |
|
22249 */ |
|
22250 case function_word_to_sint : |
|
22251 { |
|
22252 symbol_c *last_type_symbol = NULL; |
|
22253 |
|
22254 { |
|
22255 symbol_c *IN_type_symbol = param_data_type; |
|
22256 last_type_symbol = param_data_type; |
|
22257 |
|
22258 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22259 { |
|
22260 |
|
22261 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
22262 return return_type_symbol; |
|
22263 |
|
22264 } |
|
22265 |
|
22266 ERROR; |
|
22267 } |
|
22268 |
|
22269 }/*function_word_to_sint*/ |
|
22270 break; |
|
22271 |
|
22272 /**** |
|
22273 *WORD_TO_INT |
|
22274 */ |
|
22275 case function_word_to_int : |
|
22276 { |
|
22277 symbol_c *last_type_symbol = NULL; |
|
22278 |
|
22279 { |
|
22280 symbol_c *IN_type_symbol = param_data_type; |
|
22281 last_type_symbol = param_data_type; |
|
22282 |
|
22283 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22284 { |
|
22285 |
|
22286 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
22287 return return_type_symbol; |
|
22288 |
|
22289 } |
|
22290 |
|
22291 ERROR; |
|
22292 } |
|
22293 |
|
22294 }/*function_word_to_int*/ |
|
22295 break; |
|
22296 |
|
22297 /**** |
|
22298 *WORD_TO_DINT |
|
22299 */ |
|
22300 case function_word_to_dint : |
|
22301 { |
|
22302 symbol_c *last_type_symbol = NULL; |
|
22303 |
|
22304 { |
|
22305 symbol_c *IN_type_symbol = param_data_type; |
|
22306 last_type_symbol = param_data_type; |
|
22307 |
|
22308 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22309 { |
|
22310 |
|
22311 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
22312 return return_type_symbol; |
|
22313 |
|
22314 } |
|
22315 |
|
22316 ERROR; |
|
22317 } |
|
22318 |
|
22319 }/*function_word_to_dint*/ |
|
22320 break; |
|
22321 |
|
22322 /**** |
|
22323 *WORD_TO_LINT |
|
22324 */ |
|
22325 case function_word_to_lint : |
|
22326 { |
|
22327 symbol_c *last_type_symbol = NULL; |
|
22328 |
|
22329 { |
|
22330 symbol_c *IN_type_symbol = param_data_type; |
|
22331 last_type_symbol = param_data_type; |
|
22332 |
|
22333 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22334 { |
|
22335 |
|
22336 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
22337 return return_type_symbol; |
|
22338 |
|
22339 } |
|
22340 |
|
22341 ERROR; |
|
22342 } |
|
22343 |
|
22344 }/*function_word_to_lint*/ |
|
22345 break; |
|
22346 |
|
22347 /**** |
|
22348 *WORD_TO_USINT |
|
22349 */ |
|
22350 case function_word_to_usint : |
|
22351 { |
|
22352 symbol_c *last_type_symbol = NULL; |
|
22353 |
|
22354 { |
|
22355 symbol_c *IN_type_symbol = param_data_type; |
|
22356 last_type_symbol = param_data_type; |
|
22357 |
|
22358 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22359 { |
|
22360 |
|
22361 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
22362 return return_type_symbol; |
|
22363 |
|
22364 } |
|
22365 |
|
22366 ERROR; |
|
22367 } |
|
22368 |
|
22369 }/*function_word_to_usint*/ |
|
22370 break; |
|
22371 |
|
22372 /**** |
|
22373 *WORD_TO_UINT |
|
22374 */ |
|
22375 case function_word_to_uint : |
|
22376 { |
|
22377 symbol_c *last_type_symbol = NULL; |
|
22378 |
|
22379 { |
|
22380 symbol_c *IN_type_symbol = param_data_type; |
|
22381 last_type_symbol = param_data_type; |
|
22382 |
|
22383 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22384 { |
|
22385 |
|
22386 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
22387 return return_type_symbol; |
|
22388 |
|
22389 } |
|
22390 |
|
22391 ERROR; |
|
22392 } |
|
22393 |
|
22394 }/*function_word_to_uint*/ |
|
22395 break; |
|
22396 |
|
22397 /**** |
|
22398 *WORD_TO_UDINT |
|
22399 */ |
|
22400 case function_word_to_udint : |
|
22401 { |
|
22402 symbol_c *last_type_symbol = NULL; |
|
22403 |
|
22404 { |
|
22405 symbol_c *IN_type_symbol = param_data_type; |
|
22406 last_type_symbol = param_data_type; |
|
22407 |
|
22408 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22409 { |
|
22410 |
|
22411 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
22412 return return_type_symbol; |
|
22413 |
|
22414 } |
|
22415 |
|
22416 ERROR; |
|
22417 } |
|
22418 |
|
22419 }/*function_word_to_udint*/ |
|
22420 break; |
|
22421 |
|
22422 /**** |
|
22423 *WORD_TO_ULINT |
|
22424 */ |
|
22425 case function_word_to_ulint : |
|
22426 { |
|
22427 symbol_c *last_type_symbol = NULL; |
|
22428 |
|
22429 { |
|
22430 symbol_c *IN_type_symbol = param_data_type; |
|
22431 last_type_symbol = param_data_type; |
|
22432 |
|
22433 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22434 { |
|
22435 |
|
22436 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
22437 return return_type_symbol; |
|
22438 |
|
22439 } |
|
22440 |
|
22441 ERROR; |
|
22442 } |
|
22443 |
|
22444 }/*function_word_to_ulint*/ |
|
22445 break; |
|
22446 |
|
22447 /**** |
|
22448 *WORD_TO_REAL |
|
22449 */ |
|
22450 case function_word_to_real : |
|
22451 { |
|
22452 symbol_c *last_type_symbol = NULL; |
|
22453 |
|
22454 { |
|
22455 symbol_c *IN_type_symbol = param_data_type; |
|
22456 last_type_symbol = param_data_type; |
|
22457 |
|
22458 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22459 { |
|
22460 |
|
22461 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
22462 return return_type_symbol; |
|
22463 |
|
22464 } |
|
22465 |
|
22466 ERROR; |
|
22467 } |
|
22468 |
|
22469 }/*function_word_to_real*/ |
|
22470 break; |
|
22471 |
|
22472 /**** |
|
22473 *WORD_TO_LREAL |
|
22474 */ |
|
22475 case function_word_to_lreal : |
|
22476 { |
|
22477 symbol_c *last_type_symbol = NULL; |
|
22478 |
|
22479 { |
|
22480 symbol_c *IN_type_symbol = param_data_type; |
|
22481 last_type_symbol = param_data_type; |
|
22482 |
|
22483 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22484 { |
|
22485 |
|
22486 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
22487 return return_type_symbol; |
|
22488 |
|
22489 } |
|
22490 |
|
22491 ERROR; |
|
22492 } |
|
22493 |
|
22494 }/*function_word_to_lreal*/ |
|
22495 break; |
|
22496 |
|
22497 /**** |
|
22498 *WORD_TO_TIME |
|
22499 */ |
|
22500 case function_word_to_time : |
|
22501 { |
|
22502 symbol_c *last_type_symbol = NULL; |
|
22503 |
|
22504 { |
|
22505 symbol_c *IN_type_symbol = param_data_type; |
|
22506 last_type_symbol = param_data_type; |
|
22507 |
|
22508 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22509 { |
|
22510 |
|
22511 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
22512 return return_type_symbol; |
|
22513 |
|
22514 } |
|
22515 |
|
22516 ERROR; |
|
22517 } |
|
22518 |
|
22519 }/*function_word_to_time*/ |
|
22520 break; |
|
22521 |
|
22522 /**** |
|
22523 *WORD_TO_DATE |
|
22524 */ |
|
22525 case function_word_to_date : |
|
22526 { |
|
22527 symbol_c *last_type_symbol = NULL; |
|
22528 |
|
22529 { |
|
22530 symbol_c *IN_type_symbol = param_data_type; |
|
22531 last_type_symbol = param_data_type; |
|
22532 |
|
22533 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22534 { |
|
22535 |
|
22536 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
22537 return return_type_symbol; |
|
22538 |
|
22539 } |
|
22540 |
|
22541 ERROR; |
|
22542 } |
|
22543 |
|
22544 }/*function_word_to_date*/ |
|
22545 break; |
|
22546 |
|
22547 /**** |
|
22548 *WORD_TO_TOD |
|
22549 */ |
|
22550 case function_word_to_tod : |
|
22551 { |
|
22552 symbol_c *last_type_symbol = NULL; |
|
22553 |
|
22554 { |
|
22555 symbol_c *IN_type_symbol = param_data_type; |
|
22556 last_type_symbol = param_data_type; |
|
22557 |
|
22558 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22559 { |
|
22560 |
|
22561 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
22562 return return_type_symbol; |
|
22563 |
|
22564 } |
|
22565 |
|
22566 ERROR; |
|
22567 } |
|
22568 |
|
22569 }/*function_word_to_tod*/ |
|
22570 break; |
|
22571 |
|
22572 /**** |
|
22573 *WORD_TO_DT |
|
22574 */ |
|
22575 case function_word_to_dt : |
|
22576 { |
|
22577 symbol_c *last_type_symbol = NULL; |
|
22578 |
|
22579 { |
|
22580 symbol_c *IN_type_symbol = param_data_type; |
|
22581 last_type_symbol = param_data_type; |
|
22582 |
|
22583 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22584 { |
|
22585 |
|
22586 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
22587 return return_type_symbol; |
|
22588 |
|
22589 } |
|
22590 |
|
22591 ERROR; |
|
22592 } |
|
22593 |
|
22594 }/*function_word_to_dt*/ |
|
22595 break; |
|
22596 |
|
22597 /**** |
|
22598 *WORD_TO_STRING |
|
22599 */ |
|
22600 case function_word_to_string : |
|
22601 { |
|
22602 symbol_c *last_type_symbol = NULL; |
|
22603 |
|
22604 { |
|
22605 symbol_c *IN_type_symbol = param_data_type; |
|
22606 last_type_symbol = param_data_type; |
|
22607 |
|
22608 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22609 { |
|
22610 |
|
22611 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
22612 return return_type_symbol; |
|
22613 |
|
22614 } |
|
22615 |
|
22616 ERROR; |
|
22617 } |
|
22618 |
|
22619 }/*function_word_to_string*/ |
|
22620 break; |
|
22621 |
|
22622 /**** |
|
22623 *WORD_TO_BYTE |
|
22624 */ |
|
22625 case function_word_to_byte : |
|
22626 { |
|
22627 symbol_c *last_type_symbol = NULL; |
|
22628 |
|
22629 { |
|
22630 symbol_c *IN_type_symbol = param_data_type; |
|
22631 last_type_symbol = param_data_type; |
|
22632 |
|
22633 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
20212 { |
22634 { |
20213 |
22635 |
20214 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
22636 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
20215 return return_type_symbol; |
22637 return return_type_symbol; |
20216 |
22638 |
20217 } |
22639 } |
20218 |
22640 |
20219 ERROR; |
22641 ERROR; |
20220 } |
22642 } |
20221 |
22643 |
20222 }/*function_time_to_byte*/ |
22644 }/*function_word_to_byte*/ |
20223 break; |
22645 break; |
20224 |
22646 |
20225 /**** |
22647 /**** |
20226 *TIME_TO_WORD |
22648 *WORD_TO_DWORD |
20227 */ |
22649 */ |
20228 case function_time_to_word : |
22650 case function_word_to_dword : |
20229 { |
22651 { |
20230 symbol_c *last_type_symbol = NULL; |
22652 symbol_c *last_type_symbol = NULL; |
20231 |
22653 |
20232 { |
22654 { |
20233 symbol_c *IN_type_symbol = param_data_type; |
22655 symbol_c *IN_type_symbol = param_data_type; |
20234 last_type_symbol = param_data_type; |
22656 last_type_symbol = param_data_type; |
20235 |
22657 |
20236 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
22658 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22659 { |
|
22660 |
|
22661 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
22662 return return_type_symbol; |
|
22663 |
|
22664 } |
|
22665 |
|
22666 ERROR; |
|
22667 } |
|
22668 |
|
22669 }/*function_word_to_dword*/ |
|
22670 break; |
|
22671 |
|
22672 /**** |
|
22673 *WORD_TO_LWORD |
|
22674 */ |
|
22675 case function_word_to_lword : |
|
22676 { |
|
22677 symbol_c *last_type_symbol = NULL; |
|
22678 |
|
22679 { |
|
22680 symbol_c *IN_type_symbol = param_data_type; |
|
22681 last_type_symbol = param_data_type; |
|
22682 |
|
22683 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
|
22684 { |
|
22685 |
|
22686 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
22687 return return_type_symbol; |
|
22688 |
|
22689 } |
|
22690 |
|
22691 ERROR; |
|
22692 } |
|
22693 |
|
22694 }/*function_word_to_lword*/ |
|
22695 break; |
|
22696 |
|
22697 /**** |
|
22698 *DWORD_TO_BOOL |
|
22699 */ |
|
22700 case function_dword_to_bool : |
|
22701 { |
|
22702 symbol_c *last_type_symbol = NULL; |
|
22703 |
|
22704 { |
|
22705 symbol_c *IN_type_symbol = param_data_type; |
|
22706 last_type_symbol = param_data_type; |
|
22707 |
|
22708 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
22709 { |
|
22710 |
|
22711 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
22712 return return_type_symbol; |
|
22713 |
|
22714 } |
|
22715 |
|
22716 ERROR; |
|
22717 } |
|
22718 |
|
22719 }/*function_dword_to_bool*/ |
|
22720 break; |
|
22721 |
|
22722 /**** |
|
22723 *DWORD_TO_SINT |
|
22724 */ |
|
22725 case function_dword_to_sint : |
|
22726 { |
|
22727 symbol_c *last_type_symbol = NULL; |
|
22728 |
|
22729 { |
|
22730 symbol_c *IN_type_symbol = param_data_type; |
|
22731 last_type_symbol = param_data_type; |
|
22732 |
|
22733 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
22734 { |
|
22735 |
|
22736 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
22737 return return_type_symbol; |
|
22738 |
|
22739 } |
|
22740 |
|
22741 ERROR; |
|
22742 } |
|
22743 |
|
22744 }/*function_dword_to_sint*/ |
|
22745 break; |
|
22746 |
|
22747 /**** |
|
22748 *DWORD_TO_INT |
|
22749 */ |
|
22750 case function_dword_to_int : |
|
22751 { |
|
22752 symbol_c *last_type_symbol = NULL; |
|
22753 |
|
22754 { |
|
22755 symbol_c *IN_type_symbol = param_data_type; |
|
22756 last_type_symbol = param_data_type; |
|
22757 |
|
22758 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
22759 { |
|
22760 |
|
22761 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
22762 return return_type_symbol; |
|
22763 |
|
22764 } |
|
22765 |
|
22766 ERROR; |
|
22767 } |
|
22768 |
|
22769 }/*function_dword_to_int*/ |
|
22770 break; |
|
22771 |
|
22772 /**** |
|
22773 *DWORD_TO_DINT |
|
22774 */ |
|
22775 case function_dword_to_dint : |
|
22776 { |
|
22777 symbol_c *last_type_symbol = NULL; |
|
22778 |
|
22779 { |
|
22780 symbol_c *IN_type_symbol = param_data_type; |
|
22781 last_type_symbol = param_data_type; |
|
22782 |
|
22783 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
22784 { |
|
22785 |
|
22786 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
22787 return return_type_symbol; |
|
22788 |
|
22789 } |
|
22790 |
|
22791 ERROR; |
|
22792 } |
|
22793 |
|
22794 }/*function_dword_to_dint*/ |
|
22795 break; |
|
22796 |
|
22797 /**** |
|
22798 *DWORD_TO_LINT |
|
22799 */ |
|
22800 case function_dword_to_lint : |
|
22801 { |
|
22802 symbol_c *last_type_symbol = NULL; |
|
22803 |
|
22804 { |
|
22805 symbol_c *IN_type_symbol = param_data_type; |
|
22806 last_type_symbol = param_data_type; |
|
22807 |
|
22808 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
22809 { |
|
22810 |
|
22811 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
22812 return return_type_symbol; |
|
22813 |
|
22814 } |
|
22815 |
|
22816 ERROR; |
|
22817 } |
|
22818 |
|
22819 }/*function_dword_to_lint*/ |
|
22820 break; |
|
22821 |
|
22822 /**** |
|
22823 *DWORD_TO_USINT |
|
22824 */ |
|
22825 case function_dword_to_usint : |
|
22826 { |
|
22827 symbol_c *last_type_symbol = NULL; |
|
22828 |
|
22829 { |
|
22830 symbol_c *IN_type_symbol = param_data_type; |
|
22831 last_type_symbol = param_data_type; |
|
22832 |
|
22833 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
22834 { |
|
22835 |
|
22836 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
22837 return return_type_symbol; |
|
22838 |
|
22839 } |
|
22840 |
|
22841 ERROR; |
|
22842 } |
|
22843 |
|
22844 }/*function_dword_to_usint*/ |
|
22845 break; |
|
22846 |
|
22847 /**** |
|
22848 *DWORD_TO_UINT |
|
22849 */ |
|
22850 case function_dword_to_uint : |
|
22851 { |
|
22852 symbol_c *last_type_symbol = NULL; |
|
22853 |
|
22854 { |
|
22855 symbol_c *IN_type_symbol = param_data_type; |
|
22856 last_type_symbol = param_data_type; |
|
22857 |
|
22858 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
22859 { |
|
22860 |
|
22861 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
22862 return return_type_symbol; |
|
22863 |
|
22864 } |
|
22865 |
|
22866 ERROR; |
|
22867 } |
|
22868 |
|
22869 }/*function_dword_to_uint*/ |
|
22870 break; |
|
22871 |
|
22872 /**** |
|
22873 *DWORD_TO_UDINT |
|
22874 */ |
|
22875 case function_dword_to_udint : |
|
22876 { |
|
22877 symbol_c *last_type_symbol = NULL; |
|
22878 |
|
22879 { |
|
22880 symbol_c *IN_type_symbol = param_data_type; |
|
22881 last_type_symbol = param_data_type; |
|
22882 |
|
22883 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
22884 { |
|
22885 |
|
22886 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
22887 return return_type_symbol; |
|
22888 |
|
22889 } |
|
22890 |
|
22891 ERROR; |
|
22892 } |
|
22893 |
|
22894 }/*function_dword_to_udint*/ |
|
22895 break; |
|
22896 |
|
22897 /**** |
|
22898 *DWORD_TO_ULINT |
|
22899 */ |
|
22900 case function_dword_to_ulint : |
|
22901 { |
|
22902 symbol_c *last_type_symbol = NULL; |
|
22903 |
|
22904 { |
|
22905 symbol_c *IN_type_symbol = param_data_type; |
|
22906 last_type_symbol = param_data_type; |
|
22907 |
|
22908 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
22909 { |
|
22910 |
|
22911 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
22912 return return_type_symbol; |
|
22913 |
|
22914 } |
|
22915 |
|
22916 ERROR; |
|
22917 } |
|
22918 |
|
22919 }/*function_dword_to_ulint*/ |
|
22920 break; |
|
22921 |
|
22922 /**** |
|
22923 *DWORD_TO_REAL |
|
22924 */ |
|
22925 case function_dword_to_real : |
|
22926 { |
|
22927 symbol_c *last_type_symbol = NULL; |
|
22928 |
|
22929 { |
|
22930 symbol_c *IN_type_symbol = param_data_type; |
|
22931 last_type_symbol = param_data_type; |
|
22932 |
|
22933 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
22934 { |
|
22935 |
|
22936 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
22937 return return_type_symbol; |
|
22938 |
|
22939 } |
|
22940 |
|
22941 ERROR; |
|
22942 } |
|
22943 |
|
22944 }/*function_dword_to_real*/ |
|
22945 break; |
|
22946 |
|
22947 /**** |
|
22948 *DWORD_TO_LREAL |
|
22949 */ |
|
22950 case function_dword_to_lreal : |
|
22951 { |
|
22952 symbol_c *last_type_symbol = NULL; |
|
22953 |
|
22954 { |
|
22955 symbol_c *IN_type_symbol = param_data_type; |
|
22956 last_type_symbol = param_data_type; |
|
22957 |
|
22958 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
22959 { |
|
22960 |
|
22961 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
22962 return return_type_symbol; |
|
22963 |
|
22964 } |
|
22965 |
|
22966 ERROR; |
|
22967 } |
|
22968 |
|
22969 }/*function_dword_to_lreal*/ |
|
22970 break; |
|
22971 |
|
22972 /**** |
|
22973 *DWORD_TO_TIME |
|
22974 */ |
|
22975 case function_dword_to_time : |
|
22976 { |
|
22977 symbol_c *last_type_symbol = NULL; |
|
22978 |
|
22979 { |
|
22980 symbol_c *IN_type_symbol = param_data_type; |
|
22981 last_type_symbol = param_data_type; |
|
22982 |
|
22983 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
22984 { |
|
22985 |
|
22986 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
22987 return return_type_symbol; |
|
22988 |
|
22989 } |
|
22990 |
|
22991 ERROR; |
|
22992 } |
|
22993 |
|
22994 }/*function_dword_to_time*/ |
|
22995 break; |
|
22996 |
|
22997 /**** |
|
22998 *DWORD_TO_DATE |
|
22999 */ |
|
23000 case function_dword_to_date : |
|
23001 { |
|
23002 symbol_c *last_type_symbol = NULL; |
|
23003 |
|
23004 { |
|
23005 symbol_c *IN_type_symbol = param_data_type; |
|
23006 last_type_symbol = param_data_type; |
|
23007 |
|
23008 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
23009 { |
|
23010 |
|
23011 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
23012 return return_type_symbol; |
|
23013 |
|
23014 } |
|
23015 |
|
23016 ERROR; |
|
23017 } |
|
23018 |
|
23019 }/*function_dword_to_date*/ |
|
23020 break; |
|
23021 |
|
23022 /**** |
|
23023 *DWORD_TO_TOD |
|
23024 */ |
|
23025 case function_dword_to_tod : |
|
23026 { |
|
23027 symbol_c *last_type_symbol = NULL; |
|
23028 |
|
23029 { |
|
23030 symbol_c *IN_type_symbol = param_data_type; |
|
23031 last_type_symbol = param_data_type; |
|
23032 |
|
23033 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
23034 { |
|
23035 |
|
23036 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
23037 return return_type_symbol; |
|
23038 |
|
23039 } |
|
23040 |
|
23041 ERROR; |
|
23042 } |
|
23043 |
|
23044 }/*function_dword_to_tod*/ |
|
23045 break; |
|
23046 |
|
23047 /**** |
|
23048 *DWORD_TO_DT |
|
23049 */ |
|
23050 case function_dword_to_dt : |
|
23051 { |
|
23052 symbol_c *last_type_symbol = NULL; |
|
23053 |
|
23054 { |
|
23055 symbol_c *IN_type_symbol = param_data_type; |
|
23056 last_type_symbol = param_data_type; |
|
23057 |
|
23058 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
23059 { |
|
23060 |
|
23061 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
23062 return return_type_symbol; |
|
23063 |
|
23064 } |
|
23065 |
|
23066 ERROR; |
|
23067 } |
|
23068 |
|
23069 }/*function_dword_to_dt*/ |
|
23070 break; |
|
23071 |
|
23072 /**** |
|
23073 *DWORD_TO_STRING |
|
23074 */ |
|
23075 case function_dword_to_string : |
|
23076 { |
|
23077 symbol_c *last_type_symbol = NULL; |
|
23078 |
|
23079 { |
|
23080 symbol_c *IN_type_symbol = param_data_type; |
|
23081 last_type_symbol = param_data_type; |
|
23082 |
|
23083 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
23084 { |
|
23085 |
|
23086 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
23087 return return_type_symbol; |
|
23088 |
|
23089 } |
|
23090 |
|
23091 ERROR; |
|
23092 } |
|
23093 |
|
23094 }/*function_dword_to_string*/ |
|
23095 break; |
|
23096 |
|
23097 /**** |
|
23098 *DWORD_TO_BYTE |
|
23099 */ |
|
23100 case function_dword_to_byte : |
|
23101 { |
|
23102 symbol_c *last_type_symbol = NULL; |
|
23103 |
|
23104 { |
|
23105 symbol_c *IN_type_symbol = param_data_type; |
|
23106 last_type_symbol = param_data_type; |
|
23107 |
|
23108 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
23109 { |
|
23110 |
|
23111 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
23112 return return_type_symbol; |
|
23113 |
|
23114 } |
|
23115 |
|
23116 ERROR; |
|
23117 } |
|
23118 |
|
23119 }/*function_dword_to_byte*/ |
|
23120 break; |
|
23121 |
|
23122 /**** |
|
23123 *DWORD_TO_WORD |
|
23124 */ |
|
23125 case function_dword_to_word : |
|
23126 { |
|
23127 symbol_c *last_type_symbol = NULL; |
|
23128 |
|
23129 { |
|
23130 symbol_c *IN_type_symbol = param_data_type; |
|
23131 last_type_symbol = param_data_type; |
|
23132 |
|
23133 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
20237 { |
23134 { |
20238 |
23135 |
20239 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
23136 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
20240 return return_type_symbol; |
23137 return return_type_symbol; |
20241 |
23138 |
20242 } |
23139 } |
20243 |
23140 |
20244 ERROR; |
23141 ERROR; |
20245 } |
23142 } |
20246 |
23143 |
20247 }/*function_time_to_word*/ |
23144 }/*function_dword_to_word*/ |
20248 break; |
23145 break; |
20249 |
23146 |
20250 /**** |
23147 /**** |
20251 *TIME_TO_DWORD |
23148 *DWORD_TO_LWORD |
20252 */ |
23149 */ |
20253 case function_time_to_dword : |
23150 case function_dword_to_lword : |
20254 { |
23151 { |
20255 symbol_c *last_type_symbol = NULL; |
23152 symbol_c *last_type_symbol = NULL; |
20256 |
23153 |
20257 { |
23154 { |
20258 symbol_c *IN_type_symbol = param_data_type; |
23155 symbol_c *IN_type_symbol = param_data_type; |
20259 last_type_symbol = param_data_type; |
23156 last_type_symbol = param_data_type; |
20260 |
23157 |
20261 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
23158 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
|
23159 { |
|
23160 |
|
23161 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
23162 return return_type_symbol; |
|
23163 |
|
23164 } |
|
23165 |
|
23166 ERROR; |
|
23167 } |
|
23168 |
|
23169 }/*function_dword_to_lword*/ |
|
23170 break; |
|
23171 |
|
23172 /**** |
|
23173 *LWORD_TO_BOOL |
|
23174 */ |
|
23175 case function_lword_to_bool : |
|
23176 { |
|
23177 symbol_c *last_type_symbol = NULL; |
|
23178 |
|
23179 { |
|
23180 symbol_c *IN_type_symbol = param_data_type; |
|
23181 last_type_symbol = param_data_type; |
|
23182 |
|
23183 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23184 { |
|
23185 |
|
23186 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
23187 return return_type_symbol; |
|
23188 |
|
23189 } |
|
23190 |
|
23191 ERROR; |
|
23192 } |
|
23193 |
|
23194 }/*function_lword_to_bool*/ |
|
23195 break; |
|
23196 |
|
23197 /**** |
|
23198 *LWORD_TO_SINT |
|
23199 */ |
|
23200 case function_lword_to_sint : |
|
23201 { |
|
23202 symbol_c *last_type_symbol = NULL; |
|
23203 |
|
23204 { |
|
23205 symbol_c *IN_type_symbol = param_data_type; |
|
23206 last_type_symbol = param_data_type; |
|
23207 |
|
23208 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23209 { |
|
23210 |
|
23211 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
23212 return return_type_symbol; |
|
23213 |
|
23214 } |
|
23215 |
|
23216 ERROR; |
|
23217 } |
|
23218 |
|
23219 }/*function_lword_to_sint*/ |
|
23220 break; |
|
23221 |
|
23222 /**** |
|
23223 *LWORD_TO_INT |
|
23224 */ |
|
23225 case function_lword_to_int : |
|
23226 { |
|
23227 symbol_c *last_type_symbol = NULL; |
|
23228 |
|
23229 { |
|
23230 symbol_c *IN_type_symbol = param_data_type; |
|
23231 last_type_symbol = param_data_type; |
|
23232 |
|
23233 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23234 { |
|
23235 |
|
23236 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
23237 return return_type_symbol; |
|
23238 |
|
23239 } |
|
23240 |
|
23241 ERROR; |
|
23242 } |
|
23243 |
|
23244 }/*function_lword_to_int*/ |
|
23245 break; |
|
23246 |
|
23247 /**** |
|
23248 *LWORD_TO_DINT |
|
23249 */ |
|
23250 case function_lword_to_dint : |
|
23251 { |
|
23252 symbol_c *last_type_symbol = NULL; |
|
23253 |
|
23254 { |
|
23255 symbol_c *IN_type_symbol = param_data_type; |
|
23256 last_type_symbol = param_data_type; |
|
23257 |
|
23258 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23259 { |
|
23260 |
|
23261 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
23262 return return_type_symbol; |
|
23263 |
|
23264 } |
|
23265 |
|
23266 ERROR; |
|
23267 } |
|
23268 |
|
23269 }/*function_lword_to_dint*/ |
|
23270 break; |
|
23271 |
|
23272 /**** |
|
23273 *LWORD_TO_LINT |
|
23274 */ |
|
23275 case function_lword_to_lint : |
|
23276 { |
|
23277 symbol_c *last_type_symbol = NULL; |
|
23278 |
|
23279 { |
|
23280 symbol_c *IN_type_symbol = param_data_type; |
|
23281 last_type_symbol = param_data_type; |
|
23282 |
|
23283 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23284 { |
|
23285 |
|
23286 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
23287 return return_type_symbol; |
|
23288 |
|
23289 } |
|
23290 |
|
23291 ERROR; |
|
23292 } |
|
23293 |
|
23294 }/*function_lword_to_lint*/ |
|
23295 break; |
|
23296 |
|
23297 /**** |
|
23298 *LWORD_TO_USINT |
|
23299 */ |
|
23300 case function_lword_to_usint : |
|
23301 { |
|
23302 symbol_c *last_type_symbol = NULL; |
|
23303 |
|
23304 { |
|
23305 symbol_c *IN_type_symbol = param_data_type; |
|
23306 last_type_symbol = param_data_type; |
|
23307 |
|
23308 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23309 { |
|
23310 |
|
23311 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
23312 return return_type_symbol; |
|
23313 |
|
23314 } |
|
23315 |
|
23316 ERROR; |
|
23317 } |
|
23318 |
|
23319 }/*function_lword_to_usint*/ |
|
23320 break; |
|
23321 |
|
23322 /**** |
|
23323 *LWORD_TO_UINT |
|
23324 */ |
|
23325 case function_lword_to_uint : |
|
23326 { |
|
23327 symbol_c *last_type_symbol = NULL; |
|
23328 |
|
23329 { |
|
23330 symbol_c *IN_type_symbol = param_data_type; |
|
23331 last_type_symbol = param_data_type; |
|
23332 |
|
23333 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23334 { |
|
23335 |
|
23336 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
23337 return return_type_symbol; |
|
23338 |
|
23339 } |
|
23340 |
|
23341 ERROR; |
|
23342 } |
|
23343 |
|
23344 }/*function_lword_to_uint*/ |
|
23345 break; |
|
23346 |
|
23347 /**** |
|
23348 *LWORD_TO_UDINT |
|
23349 */ |
|
23350 case function_lword_to_udint : |
|
23351 { |
|
23352 symbol_c *last_type_symbol = NULL; |
|
23353 |
|
23354 { |
|
23355 symbol_c *IN_type_symbol = param_data_type; |
|
23356 last_type_symbol = param_data_type; |
|
23357 |
|
23358 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23359 { |
|
23360 |
|
23361 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
23362 return return_type_symbol; |
|
23363 |
|
23364 } |
|
23365 |
|
23366 ERROR; |
|
23367 } |
|
23368 |
|
23369 }/*function_lword_to_udint*/ |
|
23370 break; |
|
23371 |
|
23372 /**** |
|
23373 *LWORD_TO_ULINT |
|
23374 */ |
|
23375 case function_lword_to_ulint : |
|
23376 { |
|
23377 symbol_c *last_type_symbol = NULL; |
|
23378 |
|
23379 { |
|
23380 symbol_c *IN_type_symbol = param_data_type; |
|
23381 last_type_symbol = param_data_type; |
|
23382 |
|
23383 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23384 { |
|
23385 |
|
23386 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
23387 return return_type_symbol; |
|
23388 |
|
23389 } |
|
23390 |
|
23391 ERROR; |
|
23392 } |
|
23393 |
|
23394 }/*function_lword_to_ulint*/ |
|
23395 break; |
|
23396 |
|
23397 /**** |
|
23398 *LWORD_TO_REAL |
|
23399 */ |
|
23400 case function_lword_to_real : |
|
23401 { |
|
23402 symbol_c *last_type_symbol = NULL; |
|
23403 |
|
23404 { |
|
23405 symbol_c *IN_type_symbol = param_data_type; |
|
23406 last_type_symbol = param_data_type; |
|
23407 |
|
23408 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23409 { |
|
23410 |
|
23411 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
23412 return return_type_symbol; |
|
23413 |
|
23414 } |
|
23415 |
|
23416 ERROR; |
|
23417 } |
|
23418 |
|
23419 }/*function_lword_to_real*/ |
|
23420 break; |
|
23421 |
|
23422 /**** |
|
23423 *LWORD_TO_LREAL |
|
23424 */ |
|
23425 case function_lword_to_lreal : |
|
23426 { |
|
23427 symbol_c *last_type_symbol = NULL; |
|
23428 |
|
23429 { |
|
23430 symbol_c *IN_type_symbol = param_data_type; |
|
23431 last_type_symbol = param_data_type; |
|
23432 |
|
23433 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23434 { |
|
23435 |
|
23436 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
23437 return return_type_symbol; |
|
23438 |
|
23439 } |
|
23440 |
|
23441 ERROR; |
|
23442 } |
|
23443 |
|
23444 }/*function_lword_to_lreal*/ |
|
23445 break; |
|
23446 |
|
23447 /**** |
|
23448 *LWORD_TO_TIME |
|
23449 */ |
|
23450 case function_lword_to_time : |
|
23451 { |
|
23452 symbol_c *last_type_symbol = NULL; |
|
23453 |
|
23454 { |
|
23455 symbol_c *IN_type_symbol = param_data_type; |
|
23456 last_type_symbol = param_data_type; |
|
23457 |
|
23458 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23459 { |
|
23460 |
|
23461 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
23462 return return_type_symbol; |
|
23463 |
|
23464 } |
|
23465 |
|
23466 ERROR; |
|
23467 } |
|
23468 |
|
23469 }/*function_lword_to_time*/ |
|
23470 break; |
|
23471 |
|
23472 /**** |
|
23473 *LWORD_TO_DATE |
|
23474 */ |
|
23475 case function_lword_to_date : |
|
23476 { |
|
23477 symbol_c *last_type_symbol = NULL; |
|
23478 |
|
23479 { |
|
23480 symbol_c *IN_type_symbol = param_data_type; |
|
23481 last_type_symbol = param_data_type; |
|
23482 |
|
23483 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23484 { |
|
23485 |
|
23486 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
23487 return return_type_symbol; |
|
23488 |
|
23489 } |
|
23490 |
|
23491 ERROR; |
|
23492 } |
|
23493 |
|
23494 }/*function_lword_to_date*/ |
|
23495 break; |
|
23496 |
|
23497 /**** |
|
23498 *LWORD_TO_TOD |
|
23499 */ |
|
23500 case function_lword_to_tod : |
|
23501 { |
|
23502 symbol_c *last_type_symbol = NULL; |
|
23503 |
|
23504 { |
|
23505 symbol_c *IN_type_symbol = param_data_type; |
|
23506 last_type_symbol = param_data_type; |
|
23507 |
|
23508 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23509 { |
|
23510 |
|
23511 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
23512 return return_type_symbol; |
|
23513 |
|
23514 } |
|
23515 |
|
23516 ERROR; |
|
23517 } |
|
23518 |
|
23519 }/*function_lword_to_tod*/ |
|
23520 break; |
|
23521 |
|
23522 /**** |
|
23523 *LWORD_TO_DT |
|
23524 */ |
|
23525 case function_lword_to_dt : |
|
23526 { |
|
23527 symbol_c *last_type_symbol = NULL; |
|
23528 |
|
23529 { |
|
23530 symbol_c *IN_type_symbol = param_data_type; |
|
23531 last_type_symbol = param_data_type; |
|
23532 |
|
23533 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23534 { |
|
23535 |
|
23536 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
23537 return return_type_symbol; |
|
23538 |
|
23539 } |
|
23540 |
|
23541 ERROR; |
|
23542 } |
|
23543 |
|
23544 }/*function_lword_to_dt*/ |
|
23545 break; |
|
23546 |
|
23547 /**** |
|
23548 *LWORD_TO_STRING |
|
23549 */ |
|
23550 case function_lword_to_string : |
|
23551 { |
|
23552 symbol_c *last_type_symbol = NULL; |
|
23553 |
|
23554 { |
|
23555 symbol_c *IN_type_symbol = param_data_type; |
|
23556 last_type_symbol = param_data_type; |
|
23557 |
|
23558 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23559 { |
|
23560 |
|
23561 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
23562 return return_type_symbol; |
|
23563 |
|
23564 } |
|
23565 |
|
23566 ERROR; |
|
23567 } |
|
23568 |
|
23569 }/*function_lword_to_string*/ |
|
23570 break; |
|
23571 |
|
23572 /**** |
|
23573 *LWORD_TO_BYTE |
|
23574 */ |
|
23575 case function_lword_to_byte : |
|
23576 { |
|
23577 symbol_c *last_type_symbol = NULL; |
|
23578 |
|
23579 { |
|
23580 symbol_c *IN_type_symbol = param_data_type; |
|
23581 last_type_symbol = param_data_type; |
|
23582 |
|
23583 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23584 { |
|
23585 |
|
23586 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
23587 return return_type_symbol; |
|
23588 |
|
23589 } |
|
23590 |
|
23591 ERROR; |
|
23592 } |
|
23593 |
|
23594 }/*function_lword_to_byte*/ |
|
23595 break; |
|
23596 |
|
23597 /**** |
|
23598 *LWORD_TO_WORD |
|
23599 */ |
|
23600 case function_lword_to_word : |
|
23601 { |
|
23602 symbol_c *last_type_symbol = NULL; |
|
23603 |
|
23604 { |
|
23605 symbol_c *IN_type_symbol = param_data_type; |
|
23606 last_type_symbol = param_data_type; |
|
23607 |
|
23608 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
|
23609 { |
|
23610 |
|
23611 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
23612 return return_type_symbol; |
|
23613 |
|
23614 } |
|
23615 |
|
23616 ERROR; |
|
23617 } |
|
23618 |
|
23619 }/*function_lword_to_word*/ |
|
23620 break; |
|
23621 |
|
23622 /**** |
|
23623 *LWORD_TO_DWORD |
|
23624 */ |
|
23625 case function_lword_to_dword : |
|
23626 { |
|
23627 symbol_c *last_type_symbol = NULL; |
|
23628 |
|
23629 { |
|
23630 symbol_c *IN_type_symbol = param_data_type; |
|
23631 last_type_symbol = param_data_type; |
|
23632 |
|
23633 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
20262 { |
23634 { |
20263 |
23635 |
20264 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
23636 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
20265 return return_type_symbol; |
23637 return return_type_symbol; |
20266 |
23638 |
20267 } |
23639 } |
20268 |
23640 |
20269 ERROR; |
23641 ERROR; |
20270 } |
23642 } |
20271 |
23643 |
20272 }/*function_time_to_dword*/ |
23644 }/*function_lword_to_dword*/ |
20273 break; |
23645 break; |
20274 |
23646 |
20275 /**** |
23647 /**** |
20276 *TIME_TO_LWORD |
23648 *TRUNC |
20277 */ |
23649 */ |
20278 case function_time_to_lword : |
23650 case function_trunc : |
20279 { |
23651 { |
20280 symbol_c *last_type_symbol = NULL; |
23652 symbol_c *last_type_symbol = NULL; |
20281 |
23653 |
20282 { |
23654 { |
20283 symbol_c *IN_type_symbol = param_data_type; |
23655 symbol_c *IN_type_symbol = param_data_type; |
20284 last_type_symbol = param_data_type; |
23656 last_type_symbol = param_data_type; |
20285 |
23657 |
20286 if (typeid(*last_type_symbol) == typeid(time_type_name_c)) |
23658 if(search_expression_type->is_real_type(IN_type_symbol)) |
20287 { |
23659 { |
20288 |
23660 |
20289 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
23661 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
20290 return return_type_symbol; |
23662 return return_type_symbol; |
20291 |
23663 |
20292 } |
23664 } |
20293 |
23665 |
20294 ERROR; |
23666 ERROR; |
20295 } |
23667 } |
20296 |
23668 |
20297 }/*function_time_to_lword*/ |
23669 }/*function_trunc*/ |
20298 break; |
23670 break; |
20299 |
23671 |
20300 /**** |
23672 /**** |
20301 *DATE_TO_BOOL |
23673 *BCD_TO_USINT |
20302 */ |
23674 */ |
20303 case function_date_to_bool : |
23675 case function_bcd_to_usint : |
20304 { |
23676 { |
20305 symbol_c *last_type_symbol = NULL; |
23677 symbol_c *last_type_symbol = NULL; |
20306 |
23678 |
20307 { |
23679 { |
20308 symbol_c *IN_type_symbol = param_data_type; |
23680 symbol_c *IN_type_symbol = param_data_type; |
20309 last_type_symbol = param_data_type; |
23681 last_type_symbol = param_data_type; |
20310 |
23682 |
20311 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
23683 if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol)) |
20312 { |
|
20313 |
|
20314 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
20315 return return_type_symbol; |
|
20316 |
|
20317 } |
|
20318 |
|
20319 ERROR; |
|
20320 } |
|
20321 |
|
20322 }/*function_date_to_bool*/ |
|
20323 break; |
|
20324 |
|
20325 /**** |
|
20326 *DATE_TO_SINT |
|
20327 */ |
|
20328 case function_date_to_sint : |
|
20329 { |
|
20330 symbol_c *last_type_symbol = NULL; |
|
20331 |
|
20332 { |
|
20333 symbol_c *IN_type_symbol = param_data_type; |
|
20334 last_type_symbol = param_data_type; |
|
20335 |
|
20336 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
|
20337 { |
|
20338 |
|
20339 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
20340 return return_type_symbol; |
|
20341 |
|
20342 } |
|
20343 |
|
20344 ERROR; |
|
20345 } |
|
20346 |
|
20347 }/*function_date_to_sint*/ |
|
20348 break; |
|
20349 |
|
20350 /**** |
|
20351 *DATE_TO_INT |
|
20352 */ |
|
20353 case function_date_to_int : |
|
20354 { |
|
20355 symbol_c *last_type_symbol = NULL; |
|
20356 |
|
20357 { |
|
20358 symbol_c *IN_type_symbol = param_data_type; |
|
20359 last_type_symbol = param_data_type; |
|
20360 |
|
20361 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
|
20362 { |
|
20363 |
|
20364 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
20365 return return_type_symbol; |
|
20366 |
|
20367 } |
|
20368 |
|
20369 ERROR; |
|
20370 } |
|
20371 |
|
20372 }/*function_date_to_int*/ |
|
20373 break; |
|
20374 |
|
20375 /**** |
|
20376 *DATE_TO_DINT |
|
20377 */ |
|
20378 case function_date_to_dint : |
|
20379 { |
|
20380 symbol_c *last_type_symbol = NULL; |
|
20381 |
|
20382 { |
|
20383 symbol_c *IN_type_symbol = param_data_type; |
|
20384 last_type_symbol = param_data_type; |
|
20385 |
|
20386 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
|
20387 { |
|
20388 |
|
20389 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
20390 return return_type_symbol; |
|
20391 |
|
20392 } |
|
20393 |
|
20394 ERROR; |
|
20395 } |
|
20396 |
|
20397 }/*function_date_to_dint*/ |
|
20398 break; |
|
20399 |
|
20400 /**** |
|
20401 *DATE_TO_LINT |
|
20402 */ |
|
20403 case function_date_to_lint : |
|
20404 { |
|
20405 symbol_c *last_type_symbol = NULL; |
|
20406 |
|
20407 { |
|
20408 symbol_c *IN_type_symbol = param_data_type; |
|
20409 last_type_symbol = param_data_type; |
|
20410 |
|
20411 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
|
20412 { |
|
20413 |
|
20414 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
20415 return return_type_symbol; |
|
20416 |
|
20417 } |
|
20418 |
|
20419 ERROR; |
|
20420 } |
|
20421 |
|
20422 }/*function_date_to_lint*/ |
|
20423 break; |
|
20424 |
|
20425 /**** |
|
20426 *DATE_TO_USINT |
|
20427 */ |
|
20428 case function_date_to_usint : |
|
20429 { |
|
20430 symbol_c *last_type_symbol = NULL; |
|
20431 |
|
20432 { |
|
20433 symbol_c *IN_type_symbol = param_data_type; |
|
20434 last_type_symbol = param_data_type; |
|
20435 |
|
20436 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
|
20437 { |
23684 { |
20438 |
23685 |
20439 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
23686 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
20440 return return_type_symbol; |
23687 return return_type_symbol; |
20441 |
23688 |
20442 } |
23689 } |
20443 |
23690 |
20444 ERROR; |
23691 ERROR; |
20445 } |
23692 } |
20446 |
23693 |
20447 }/*function_date_to_usint*/ |
23694 }/*function_bcd_to_usint*/ |
20448 break; |
23695 break; |
20449 |
23696 |
20450 /**** |
23697 /**** |
20451 *DATE_TO_UINT |
23698 *BCD_TO_UINT |
20452 */ |
23699 */ |
20453 case function_date_to_uint : |
23700 case function_bcd_to_uint : |
20454 { |
23701 { |
20455 symbol_c *last_type_symbol = NULL; |
23702 symbol_c *last_type_symbol = NULL; |
20456 |
23703 |
20457 { |
23704 { |
20458 symbol_c *IN_type_symbol = param_data_type; |
23705 symbol_c *IN_type_symbol = param_data_type; |
20459 last_type_symbol = param_data_type; |
23706 last_type_symbol = param_data_type; |
20460 |
23707 |
20461 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
23708 if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol)) |
20462 { |
23709 { |
20463 |
23710 |
20464 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
23711 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
20465 return return_type_symbol; |
23712 return return_type_symbol; |
20466 |
23713 |
20467 } |
23714 } |
20468 |
23715 |
20469 ERROR; |
23716 ERROR; |
20470 } |
23717 } |
20471 |
23718 |
20472 }/*function_date_to_uint*/ |
23719 }/*function_bcd_to_uint*/ |
20473 break; |
23720 break; |
20474 |
23721 |
20475 /**** |
23722 /**** |
20476 *DATE_TO_UDINT |
23723 *BCD_TO_UDINT |
20477 */ |
23724 */ |
20478 case function_date_to_udint : |
23725 case function_bcd_to_udint : |
20479 { |
23726 { |
20480 symbol_c *last_type_symbol = NULL; |
23727 symbol_c *last_type_symbol = NULL; |
20481 |
23728 |
20482 { |
23729 { |
20483 symbol_c *IN_type_symbol = param_data_type; |
23730 symbol_c *IN_type_symbol = param_data_type; |
20484 last_type_symbol = param_data_type; |
23731 last_type_symbol = param_data_type; |
20485 |
23732 |
20486 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
23733 if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol)) |
20487 { |
23734 { |
20488 |
23735 |
20489 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
23736 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
20490 return return_type_symbol; |
23737 return return_type_symbol; |
20491 |
23738 |
20492 } |
23739 } |
20493 |
23740 |
20494 ERROR; |
23741 ERROR; |
20495 } |
23742 } |
20496 |
23743 |
20497 }/*function_date_to_udint*/ |
23744 }/*function_bcd_to_udint*/ |
20498 break; |
23745 break; |
20499 |
23746 |
20500 /**** |
23747 /**** |
20501 *DATE_TO_ULINT |
23748 *BCD_TO_ULINT |
20502 */ |
23749 */ |
20503 case function_date_to_ulint : |
23750 case function_bcd_to_ulint : |
20504 { |
23751 { |
20505 symbol_c *last_type_symbol = NULL; |
23752 symbol_c *last_type_symbol = NULL; |
20506 |
23753 |
20507 { |
23754 { |
20508 symbol_c *IN_type_symbol = param_data_type; |
23755 symbol_c *IN_type_symbol = param_data_type; |
20509 last_type_symbol = param_data_type; |
23756 last_type_symbol = param_data_type; |
20510 |
23757 |
20511 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
23758 if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol)) |
20512 { |
23759 { |
20513 |
23760 |
20514 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
23761 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
20515 return return_type_symbol; |
23762 return return_type_symbol; |
20516 |
23763 |
20517 } |
23764 } |
20518 |
23765 |
20519 ERROR; |
23766 ERROR; |
20520 } |
23767 } |
20521 |
23768 |
20522 }/*function_date_to_ulint*/ |
23769 }/*function_bcd_to_ulint*/ |
20523 break; |
23770 break; |
20524 |
23771 |
20525 /**** |
23772 /**** |
20526 *DATE_TO_REAL |
23773 *USINT_TO_BCD |
20527 */ |
23774 */ |
20528 case function_date_to_real : |
23775 case function_usint_to_bcd : |
20529 { |
23776 { |
20530 symbol_c *last_type_symbol = NULL; |
23777 symbol_c *last_type_symbol = NULL; |
20531 |
23778 |
20532 { |
23779 { |
20533 symbol_c *IN_type_symbol = param_data_type; |
23780 symbol_c *IN_type_symbol = param_data_type; |
20534 last_type_symbol = param_data_type; |
23781 last_type_symbol = param_data_type; |
20535 |
23782 |
20536 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
23783 if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol)) |
20537 { |
23784 { |
20538 |
23785 |
20539 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
23786 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
20540 return return_type_symbol; |
23787 return return_type_symbol; |
20541 |
23788 |
20542 } |
23789 } |
20543 |
23790 |
20544 ERROR; |
23791 ERROR; |
20545 } |
23792 } |
20546 |
23793 |
20547 }/*function_date_to_real*/ |
23794 }/*function_usint_to_bcd*/ |
20548 break; |
23795 break; |
20549 |
23796 |
20550 /**** |
23797 /**** |
20551 *DATE_TO_LREAL |
23798 *UINT_TO_BCD |
20552 */ |
23799 */ |
20553 case function_date_to_lreal : |
23800 case function_uint_to_bcd : |
20554 { |
23801 { |
20555 symbol_c *last_type_symbol = NULL; |
23802 symbol_c *last_type_symbol = NULL; |
20556 |
23803 |
20557 { |
23804 { |
20558 symbol_c *IN_type_symbol = param_data_type; |
23805 symbol_c *IN_type_symbol = param_data_type; |
20559 last_type_symbol = param_data_type; |
23806 last_type_symbol = param_data_type; |
20560 |
23807 |
20561 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
23808 if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol)) |
20562 { |
23809 { |
20563 |
23810 |
20564 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
23811 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
20565 return return_type_symbol; |
23812 return return_type_symbol; |
20566 |
23813 |
20567 } |
23814 } |
20568 |
23815 |
20569 ERROR; |
23816 ERROR; |
20570 } |
23817 } |
20571 |
23818 |
20572 }/*function_date_to_lreal*/ |
23819 }/*function_uint_to_bcd*/ |
20573 break; |
23820 break; |
20574 |
23821 |
20575 /**** |
23822 /**** |
20576 *DATE_TO_STRING |
23823 *UDINT_TO_BCD |
20577 */ |
23824 */ |
20578 case function_date_to_string : |
23825 case function_udint_to_bcd : |
20579 { |
23826 { |
20580 symbol_c *last_type_symbol = NULL; |
23827 symbol_c *last_type_symbol = NULL; |
20581 |
23828 |
20582 { |
23829 { |
20583 symbol_c *IN_type_symbol = param_data_type; |
23830 symbol_c *IN_type_symbol = param_data_type; |
20584 last_type_symbol = param_data_type; |
23831 last_type_symbol = param_data_type; |
20585 |
23832 |
20586 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
23833 if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol)) |
20587 { |
23834 { |
20588 |
23835 |
20589 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
23836 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
20590 return return_type_symbol; |
23837 return return_type_symbol; |
20591 |
23838 |
20592 } |
23839 } |
20593 |
23840 |
20594 ERROR; |
23841 ERROR; |
20595 } |
23842 } |
20596 |
23843 |
20597 }/*function_date_to_string*/ |
23844 }/*function_udint_to_bcd*/ |
20598 break; |
23845 break; |
20599 |
23846 |
20600 /**** |
23847 /**** |
20601 *DATE_TO_BYTE |
23848 *ULINT_TO_BCD |
20602 */ |
23849 */ |
20603 case function_date_to_byte : |
23850 case function_ulint_to_bcd : |
20604 { |
23851 { |
20605 symbol_c *last_type_symbol = NULL; |
23852 symbol_c *last_type_symbol = NULL; |
20606 |
23853 |
20607 { |
23854 { |
20608 symbol_c *IN_type_symbol = param_data_type; |
23855 symbol_c *IN_type_symbol = param_data_type; |
20609 last_type_symbol = param_data_type; |
23856 last_type_symbol = param_data_type; |
20610 |
23857 |
20611 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
23858 if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol)) |
20612 { |
23859 { |
20613 |
23860 |
20614 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
23861 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
20615 return return_type_symbol; |
23862 return return_type_symbol; |
20616 |
23863 |
20617 } |
23864 } |
20618 |
23865 |
20619 ERROR; |
23866 ERROR; |
20620 } |
23867 } |
20621 |
23868 |
20622 }/*function_date_to_byte*/ |
23869 }/*function_ulint_to_bcd*/ |
20623 break; |
23870 break; |
20624 |
23871 |
20625 /**** |
23872 /**** |
20626 *DATE_TO_WORD |
23873 *DATE_AND_TIME_TO_TIME_OF_DAY |
20627 */ |
23874 */ |
20628 case function_date_to_word : |
23875 case function_date_and_time_to_time_of_day : |
20629 { |
23876 { |
20630 symbol_c *last_type_symbol = NULL; |
23877 symbol_c *last_type_symbol = NULL; |
20631 |
23878 |
20632 { |
23879 { |
20633 symbol_c *IN_type_symbol = param_data_type; |
23880 symbol_c *IN_type_symbol = param_data_type; |
20634 last_type_symbol = param_data_type; |
23881 last_type_symbol = param_data_type; |
20635 |
23882 |
20636 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
23883 if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol)) |
20637 { |
|
20638 |
|
20639 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
20640 return return_type_symbol; |
|
20641 |
|
20642 } |
|
20643 |
|
20644 ERROR; |
|
20645 } |
|
20646 |
|
20647 }/*function_date_to_word*/ |
|
20648 break; |
|
20649 |
|
20650 /**** |
|
20651 *DATE_TO_DWORD |
|
20652 */ |
|
20653 case function_date_to_dword : |
|
20654 { |
|
20655 symbol_c *last_type_symbol = NULL; |
|
20656 |
|
20657 { |
|
20658 symbol_c *IN_type_symbol = param_data_type; |
|
20659 last_type_symbol = param_data_type; |
|
20660 |
|
20661 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
|
20662 { |
|
20663 |
|
20664 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
20665 return return_type_symbol; |
|
20666 |
|
20667 } |
|
20668 |
|
20669 ERROR; |
|
20670 } |
|
20671 |
|
20672 }/*function_date_to_dword*/ |
|
20673 break; |
|
20674 |
|
20675 /**** |
|
20676 *DATE_TO_LWORD |
|
20677 */ |
|
20678 case function_date_to_lword : |
|
20679 { |
|
20680 symbol_c *last_type_symbol = NULL; |
|
20681 |
|
20682 { |
|
20683 symbol_c *IN_type_symbol = param_data_type; |
|
20684 last_type_symbol = param_data_type; |
|
20685 |
|
20686 if (typeid(*last_type_symbol) == typeid(date_type_name_c)) |
|
20687 { |
|
20688 |
|
20689 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
20690 return return_type_symbol; |
|
20691 |
|
20692 } |
|
20693 |
|
20694 ERROR; |
|
20695 } |
|
20696 |
|
20697 }/*function_date_to_lword*/ |
|
20698 break; |
|
20699 |
|
20700 /**** |
|
20701 *TOD_TO_BOOL |
|
20702 */ |
|
20703 case function_tod_to_bool : |
|
20704 { |
|
20705 symbol_c *last_type_symbol = NULL; |
|
20706 |
|
20707 { |
|
20708 symbol_c *IN_type_symbol = param_data_type; |
|
20709 last_type_symbol = param_data_type; |
|
20710 |
|
20711 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
20712 { |
|
20713 |
|
20714 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
20715 return return_type_symbol; |
|
20716 |
|
20717 } |
|
20718 |
|
20719 ERROR; |
|
20720 } |
|
20721 |
|
20722 }/*function_tod_to_bool*/ |
|
20723 break; |
|
20724 |
|
20725 /**** |
|
20726 *TOD_TO_SINT |
|
20727 */ |
|
20728 case function_tod_to_sint : |
|
20729 { |
|
20730 symbol_c *last_type_symbol = NULL; |
|
20731 |
|
20732 { |
|
20733 symbol_c *IN_type_symbol = param_data_type; |
|
20734 last_type_symbol = param_data_type; |
|
20735 |
|
20736 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
20737 { |
|
20738 |
|
20739 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
20740 return return_type_symbol; |
|
20741 |
|
20742 } |
|
20743 |
|
20744 ERROR; |
|
20745 } |
|
20746 |
|
20747 }/*function_tod_to_sint*/ |
|
20748 break; |
|
20749 |
|
20750 /**** |
|
20751 *TOD_TO_INT |
|
20752 */ |
|
20753 case function_tod_to_int : |
|
20754 { |
|
20755 symbol_c *last_type_symbol = NULL; |
|
20756 |
|
20757 { |
|
20758 symbol_c *IN_type_symbol = param_data_type; |
|
20759 last_type_symbol = param_data_type; |
|
20760 |
|
20761 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
20762 { |
|
20763 |
|
20764 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
20765 return return_type_symbol; |
|
20766 |
|
20767 } |
|
20768 |
|
20769 ERROR; |
|
20770 } |
|
20771 |
|
20772 }/*function_tod_to_int*/ |
|
20773 break; |
|
20774 |
|
20775 /**** |
|
20776 *TOD_TO_DINT |
|
20777 */ |
|
20778 case function_tod_to_dint : |
|
20779 { |
|
20780 symbol_c *last_type_symbol = NULL; |
|
20781 |
|
20782 { |
|
20783 symbol_c *IN_type_symbol = param_data_type; |
|
20784 last_type_symbol = param_data_type; |
|
20785 |
|
20786 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
20787 { |
|
20788 |
|
20789 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
20790 return return_type_symbol; |
|
20791 |
|
20792 } |
|
20793 |
|
20794 ERROR; |
|
20795 } |
|
20796 |
|
20797 }/*function_tod_to_dint*/ |
|
20798 break; |
|
20799 |
|
20800 /**** |
|
20801 *TOD_TO_LINT |
|
20802 */ |
|
20803 case function_tod_to_lint : |
|
20804 { |
|
20805 symbol_c *last_type_symbol = NULL; |
|
20806 |
|
20807 { |
|
20808 symbol_c *IN_type_symbol = param_data_type; |
|
20809 last_type_symbol = param_data_type; |
|
20810 |
|
20811 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
20812 { |
|
20813 |
|
20814 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
20815 return return_type_symbol; |
|
20816 |
|
20817 } |
|
20818 |
|
20819 ERROR; |
|
20820 } |
|
20821 |
|
20822 }/*function_tod_to_lint*/ |
|
20823 break; |
|
20824 |
|
20825 /**** |
|
20826 *TOD_TO_USINT |
|
20827 */ |
|
20828 case function_tod_to_usint : |
|
20829 { |
|
20830 symbol_c *last_type_symbol = NULL; |
|
20831 |
|
20832 { |
|
20833 symbol_c *IN_type_symbol = param_data_type; |
|
20834 last_type_symbol = param_data_type; |
|
20835 |
|
20836 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
20837 { |
|
20838 |
|
20839 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
20840 return return_type_symbol; |
|
20841 |
|
20842 } |
|
20843 |
|
20844 ERROR; |
|
20845 } |
|
20846 |
|
20847 }/*function_tod_to_usint*/ |
|
20848 break; |
|
20849 |
|
20850 /**** |
|
20851 *TOD_TO_UINT |
|
20852 */ |
|
20853 case function_tod_to_uint : |
|
20854 { |
|
20855 symbol_c *last_type_symbol = NULL; |
|
20856 |
|
20857 { |
|
20858 symbol_c *IN_type_symbol = param_data_type; |
|
20859 last_type_symbol = param_data_type; |
|
20860 |
|
20861 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
20862 { |
|
20863 |
|
20864 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
20865 return return_type_symbol; |
|
20866 |
|
20867 } |
|
20868 |
|
20869 ERROR; |
|
20870 } |
|
20871 |
|
20872 }/*function_tod_to_uint*/ |
|
20873 break; |
|
20874 |
|
20875 /**** |
|
20876 *TOD_TO_UDINT |
|
20877 */ |
|
20878 case function_tod_to_udint : |
|
20879 { |
|
20880 symbol_c *last_type_symbol = NULL; |
|
20881 |
|
20882 { |
|
20883 symbol_c *IN_type_symbol = param_data_type; |
|
20884 last_type_symbol = param_data_type; |
|
20885 |
|
20886 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
20887 { |
|
20888 |
|
20889 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
20890 return return_type_symbol; |
|
20891 |
|
20892 } |
|
20893 |
|
20894 ERROR; |
|
20895 } |
|
20896 |
|
20897 }/*function_tod_to_udint*/ |
|
20898 break; |
|
20899 |
|
20900 /**** |
|
20901 *TOD_TO_ULINT |
|
20902 */ |
|
20903 case function_tod_to_ulint : |
|
20904 { |
|
20905 symbol_c *last_type_symbol = NULL; |
|
20906 |
|
20907 { |
|
20908 symbol_c *IN_type_symbol = param_data_type; |
|
20909 last_type_symbol = param_data_type; |
|
20910 |
|
20911 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
20912 { |
|
20913 |
|
20914 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
20915 return return_type_symbol; |
|
20916 |
|
20917 } |
|
20918 |
|
20919 ERROR; |
|
20920 } |
|
20921 |
|
20922 }/*function_tod_to_ulint*/ |
|
20923 break; |
|
20924 |
|
20925 /**** |
|
20926 *TOD_TO_REAL |
|
20927 */ |
|
20928 case function_tod_to_real : |
|
20929 { |
|
20930 symbol_c *last_type_symbol = NULL; |
|
20931 |
|
20932 { |
|
20933 symbol_c *IN_type_symbol = param_data_type; |
|
20934 last_type_symbol = param_data_type; |
|
20935 |
|
20936 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
20937 { |
|
20938 |
|
20939 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
20940 return return_type_symbol; |
|
20941 |
|
20942 } |
|
20943 |
|
20944 ERROR; |
|
20945 } |
|
20946 |
|
20947 }/*function_tod_to_real*/ |
|
20948 break; |
|
20949 |
|
20950 /**** |
|
20951 *TOD_TO_LREAL |
|
20952 */ |
|
20953 case function_tod_to_lreal : |
|
20954 { |
|
20955 symbol_c *last_type_symbol = NULL; |
|
20956 |
|
20957 { |
|
20958 symbol_c *IN_type_symbol = param_data_type; |
|
20959 last_type_symbol = param_data_type; |
|
20960 |
|
20961 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
20962 { |
|
20963 |
|
20964 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
20965 return return_type_symbol; |
|
20966 |
|
20967 } |
|
20968 |
|
20969 ERROR; |
|
20970 } |
|
20971 |
|
20972 }/*function_tod_to_lreal*/ |
|
20973 break; |
|
20974 |
|
20975 /**** |
|
20976 *TOD_TO_STRING |
|
20977 */ |
|
20978 case function_tod_to_string : |
|
20979 { |
|
20980 symbol_c *last_type_symbol = NULL; |
|
20981 |
|
20982 { |
|
20983 symbol_c *IN_type_symbol = param_data_type; |
|
20984 last_type_symbol = param_data_type; |
|
20985 |
|
20986 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
20987 { |
|
20988 |
|
20989 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
20990 return return_type_symbol; |
|
20991 |
|
20992 } |
|
20993 |
|
20994 ERROR; |
|
20995 } |
|
20996 |
|
20997 }/*function_tod_to_string*/ |
|
20998 break; |
|
20999 |
|
21000 /**** |
|
21001 *TOD_TO_BYTE |
|
21002 */ |
|
21003 case function_tod_to_byte : |
|
21004 { |
|
21005 symbol_c *last_type_symbol = NULL; |
|
21006 |
|
21007 { |
|
21008 symbol_c *IN_type_symbol = param_data_type; |
|
21009 last_type_symbol = param_data_type; |
|
21010 |
|
21011 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
21012 { |
|
21013 |
|
21014 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
21015 return return_type_symbol; |
|
21016 |
|
21017 } |
|
21018 |
|
21019 ERROR; |
|
21020 } |
|
21021 |
|
21022 }/*function_tod_to_byte*/ |
|
21023 break; |
|
21024 |
|
21025 /**** |
|
21026 *TOD_TO_WORD |
|
21027 */ |
|
21028 case function_tod_to_word : |
|
21029 { |
|
21030 symbol_c *last_type_symbol = NULL; |
|
21031 |
|
21032 { |
|
21033 symbol_c *IN_type_symbol = param_data_type; |
|
21034 last_type_symbol = param_data_type; |
|
21035 |
|
21036 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
21037 { |
|
21038 |
|
21039 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
21040 return return_type_symbol; |
|
21041 |
|
21042 } |
|
21043 |
|
21044 ERROR; |
|
21045 } |
|
21046 |
|
21047 }/*function_tod_to_word*/ |
|
21048 break; |
|
21049 |
|
21050 /**** |
|
21051 *TOD_TO_DWORD |
|
21052 */ |
|
21053 case function_tod_to_dword : |
|
21054 { |
|
21055 symbol_c *last_type_symbol = NULL; |
|
21056 |
|
21057 { |
|
21058 symbol_c *IN_type_symbol = param_data_type; |
|
21059 last_type_symbol = param_data_type; |
|
21060 |
|
21061 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
21062 { |
|
21063 |
|
21064 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
21065 return return_type_symbol; |
|
21066 |
|
21067 } |
|
21068 |
|
21069 ERROR; |
|
21070 } |
|
21071 |
|
21072 }/*function_tod_to_dword*/ |
|
21073 break; |
|
21074 |
|
21075 /**** |
|
21076 *TOD_TO_LWORD |
|
21077 */ |
|
21078 case function_tod_to_lword : |
|
21079 { |
|
21080 symbol_c *last_type_symbol = NULL; |
|
21081 |
|
21082 { |
|
21083 symbol_c *IN_type_symbol = param_data_type; |
|
21084 last_type_symbol = param_data_type; |
|
21085 |
|
21086 if (typeid(*last_type_symbol) == typeid(tod_type_name_c)) |
|
21087 { |
|
21088 |
|
21089 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
21090 return return_type_symbol; |
|
21091 |
|
21092 } |
|
21093 |
|
21094 ERROR; |
|
21095 } |
|
21096 |
|
21097 }/*function_tod_to_lword*/ |
|
21098 break; |
|
21099 |
|
21100 /**** |
|
21101 *DT_TO_BOOL |
|
21102 */ |
|
21103 case function_dt_to_bool : |
|
21104 { |
|
21105 symbol_c *last_type_symbol = NULL; |
|
21106 |
|
21107 { |
|
21108 symbol_c *IN_type_symbol = param_data_type; |
|
21109 last_type_symbol = param_data_type; |
|
21110 |
|
21111 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
21112 { |
|
21113 |
|
21114 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
21115 return return_type_symbol; |
|
21116 |
|
21117 } |
|
21118 |
|
21119 ERROR; |
|
21120 } |
|
21121 |
|
21122 }/*function_dt_to_bool*/ |
|
21123 break; |
|
21124 |
|
21125 /**** |
|
21126 *DT_TO_SINT |
|
21127 */ |
|
21128 case function_dt_to_sint : |
|
21129 { |
|
21130 symbol_c *last_type_symbol = NULL; |
|
21131 |
|
21132 { |
|
21133 symbol_c *IN_type_symbol = param_data_type; |
|
21134 last_type_symbol = param_data_type; |
|
21135 |
|
21136 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
21137 { |
|
21138 |
|
21139 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
21140 return return_type_symbol; |
|
21141 |
|
21142 } |
|
21143 |
|
21144 ERROR; |
|
21145 } |
|
21146 |
|
21147 }/*function_dt_to_sint*/ |
|
21148 break; |
|
21149 |
|
21150 /**** |
|
21151 *DT_TO_INT |
|
21152 */ |
|
21153 case function_dt_to_int : |
|
21154 { |
|
21155 symbol_c *last_type_symbol = NULL; |
|
21156 |
|
21157 { |
|
21158 symbol_c *IN_type_symbol = param_data_type; |
|
21159 last_type_symbol = param_data_type; |
|
21160 |
|
21161 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
21162 { |
|
21163 |
|
21164 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
21165 return return_type_symbol; |
|
21166 |
|
21167 } |
|
21168 |
|
21169 ERROR; |
|
21170 } |
|
21171 |
|
21172 }/*function_dt_to_int*/ |
|
21173 break; |
|
21174 |
|
21175 /**** |
|
21176 *DT_TO_DINT |
|
21177 */ |
|
21178 case function_dt_to_dint : |
|
21179 { |
|
21180 symbol_c *last_type_symbol = NULL; |
|
21181 |
|
21182 { |
|
21183 symbol_c *IN_type_symbol = param_data_type; |
|
21184 last_type_symbol = param_data_type; |
|
21185 |
|
21186 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
21187 { |
|
21188 |
|
21189 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
21190 return return_type_symbol; |
|
21191 |
|
21192 } |
|
21193 |
|
21194 ERROR; |
|
21195 } |
|
21196 |
|
21197 }/*function_dt_to_dint*/ |
|
21198 break; |
|
21199 |
|
21200 /**** |
|
21201 *DT_TO_LINT |
|
21202 */ |
|
21203 case function_dt_to_lint : |
|
21204 { |
|
21205 symbol_c *last_type_symbol = NULL; |
|
21206 |
|
21207 { |
|
21208 symbol_c *IN_type_symbol = param_data_type; |
|
21209 last_type_symbol = param_data_type; |
|
21210 |
|
21211 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
21212 { |
|
21213 |
|
21214 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
21215 return return_type_symbol; |
|
21216 |
|
21217 } |
|
21218 |
|
21219 ERROR; |
|
21220 } |
|
21221 |
|
21222 }/*function_dt_to_lint*/ |
|
21223 break; |
|
21224 |
|
21225 /**** |
|
21226 *DT_TO_USINT |
|
21227 */ |
|
21228 case function_dt_to_usint : |
|
21229 { |
|
21230 symbol_c *last_type_symbol = NULL; |
|
21231 |
|
21232 { |
|
21233 symbol_c *IN_type_symbol = param_data_type; |
|
21234 last_type_symbol = param_data_type; |
|
21235 |
|
21236 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
21237 { |
|
21238 |
|
21239 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
21240 return return_type_symbol; |
|
21241 |
|
21242 } |
|
21243 |
|
21244 ERROR; |
|
21245 } |
|
21246 |
|
21247 }/*function_dt_to_usint*/ |
|
21248 break; |
|
21249 |
|
21250 /**** |
|
21251 *DT_TO_UINT |
|
21252 */ |
|
21253 case function_dt_to_uint : |
|
21254 { |
|
21255 symbol_c *last_type_symbol = NULL; |
|
21256 |
|
21257 { |
|
21258 symbol_c *IN_type_symbol = param_data_type; |
|
21259 last_type_symbol = param_data_type; |
|
21260 |
|
21261 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
21262 { |
|
21263 |
|
21264 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
21265 return return_type_symbol; |
|
21266 |
|
21267 } |
|
21268 |
|
21269 ERROR; |
|
21270 } |
|
21271 |
|
21272 }/*function_dt_to_uint*/ |
|
21273 break; |
|
21274 |
|
21275 /**** |
|
21276 *DT_TO_UDINT |
|
21277 */ |
|
21278 case function_dt_to_udint : |
|
21279 { |
|
21280 symbol_c *last_type_symbol = NULL; |
|
21281 |
|
21282 { |
|
21283 symbol_c *IN_type_symbol = param_data_type; |
|
21284 last_type_symbol = param_data_type; |
|
21285 |
|
21286 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
21287 { |
|
21288 |
|
21289 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
21290 return return_type_symbol; |
|
21291 |
|
21292 } |
|
21293 |
|
21294 ERROR; |
|
21295 } |
|
21296 |
|
21297 }/*function_dt_to_udint*/ |
|
21298 break; |
|
21299 |
|
21300 /**** |
|
21301 *DT_TO_ULINT |
|
21302 */ |
|
21303 case function_dt_to_ulint : |
|
21304 { |
|
21305 symbol_c *last_type_symbol = NULL; |
|
21306 |
|
21307 { |
|
21308 symbol_c *IN_type_symbol = param_data_type; |
|
21309 last_type_symbol = param_data_type; |
|
21310 |
|
21311 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
21312 { |
|
21313 |
|
21314 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
21315 return return_type_symbol; |
|
21316 |
|
21317 } |
|
21318 |
|
21319 ERROR; |
|
21320 } |
|
21321 |
|
21322 }/*function_dt_to_ulint*/ |
|
21323 break; |
|
21324 |
|
21325 /**** |
|
21326 *DT_TO_REAL |
|
21327 */ |
|
21328 case function_dt_to_real : |
|
21329 { |
|
21330 symbol_c *last_type_symbol = NULL; |
|
21331 |
|
21332 { |
|
21333 symbol_c *IN_type_symbol = param_data_type; |
|
21334 last_type_symbol = param_data_type; |
|
21335 |
|
21336 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
21337 { |
|
21338 |
|
21339 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
21340 return return_type_symbol; |
|
21341 |
|
21342 } |
|
21343 |
|
21344 ERROR; |
|
21345 } |
|
21346 |
|
21347 }/*function_dt_to_real*/ |
|
21348 break; |
|
21349 |
|
21350 /**** |
|
21351 *DT_TO_LREAL |
|
21352 */ |
|
21353 case function_dt_to_lreal : |
|
21354 { |
|
21355 symbol_c *last_type_symbol = NULL; |
|
21356 |
|
21357 { |
|
21358 symbol_c *IN_type_symbol = param_data_type; |
|
21359 last_type_symbol = param_data_type; |
|
21360 |
|
21361 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
21362 { |
|
21363 |
|
21364 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
21365 return return_type_symbol; |
|
21366 |
|
21367 } |
|
21368 |
|
21369 ERROR; |
|
21370 } |
|
21371 |
|
21372 }/*function_dt_to_lreal*/ |
|
21373 break; |
|
21374 |
|
21375 /**** |
|
21376 *DT_TO_STRING |
|
21377 */ |
|
21378 case function_dt_to_string : |
|
21379 { |
|
21380 symbol_c *last_type_symbol = NULL; |
|
21381 |
|
21382 { |
|
21383 symbol_c *IN_type_symbol = param_data_type; |
|
21384 last_type_symbol = param_data_type; |
|
21385 |
|
21386 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
21387 { |
|
21388 |
|
21389 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
21390 return return_type_symbol; |
|
21391 |
|
21392 } |
|
21393 |
|
21394 ERROR; |
|
21395 } |
|
21396 |
|
21397 }/*function_dt_to_string*/ |
|
21398 break; |
|
21399 |
|
21400 /**** |
|
21401 *DT_TO_BYTE |
|
21402 */ |
|
21403 case function_dt_to_byte : |
|
21404 { |
|
21405 symbol_c *last_type_symbol = NULL; |
|
21406 |
|
21407 { |
|
21408 symbol_c *IN_type_symbol = param_data_type; |
|
21409 last_type_symbol = param_data_type; |
|
21410 |
|
21411 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
21412 { |
|
21413 |
|
21414 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
21415 return return_type_symbol; |
|
21416 |
|
21417 } |
|
21418 |
|
21419 ERROR; |
|
21420 } |
|
21421 |
|
21422 }/*function_dt_to_byte*/ |
|
21423 break; |
|
21424 |
|
21425 /**** |
|
21426 *DT_TO_WORD |
|
21427 */ |
|
21428 case function_dt_to_word : |
|
21429 { |
|
21430 symbol_c *last_type_symbol = NULL; |
|
21431 |
|
21432 { |
|
21433 symbol_c *IN_type_symbol = param_data_type; |
|
21434 last_type_symbol = param_data_type; |
|
21435 |
|
21436 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
21437 { |
|
21438 |
|
21439 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
21440 return return_type_symbol; |
|
21441 |
|
21442 } |
|
21443 |
|
21444 ERROR; |
|
21445 } |
|
21446 |
|
21447 }/*function_dt_to_word*/ |
|
21448 break; |
|
21449 |
|
21450 /**** |
|
21451 *DT_TO_DWORD |
|
21452 */ |
|
21453 case function_dt_to_dword : |
|
21454 { |
|
21455 symbol_c *last_type_symbol = NULL; |
|
21456 |
|
21457 { |
|
21458 symbol_c *IN_type_symbol = param_data_type; |
|
21459 last_type_symbol = param_data_type; |
|
21460 |
|
21461 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
21462 { |
|
21463 |
|
21464 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
21465 return return_type_symbol; |
|
21466 |
|
21467 } |
|
21468 |
|
21469 ERROR; |
|
21470 } |
|
21471 |
|
21472 }/*function_dt_to_dword*/ |
|
21473 break; |
|
21474 |
|
21475 /**** |
|
21476 *DT_TO_LWORD |
|
21477 */ |
|
21478 case function_dt_to_lword : |
|
21479 { |
|
21480 symbol_c *last_type_symbol = NULL; |
|
21481 |
|
21482 { |
|
21483 symbol_c *IN_type_symbol = param_data_type; |
|
21484 last_type_symbol = param_data_type; |
|
21485 |
|
21486 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
21487 { |
|
21488 |
|
21489 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
21490 return return_type_symbol; |
|
21491 |
|
21492 } |
|
21493 |
|
21494 ERROR; |
|
21495 } |
|
21496 |
|
21497 }/*function_dt_to_lword*/ |
|
21498 break; |
|
21499 |
|
21500 /**** |
|
21501 *STRING_TO_BOOL |
|
21502 */ |
|
21503 case function_string_to_bool : |
|
21504 { |
|
21505 symbol_c *last_type_symbol = NULL; |
|
21506 |
|
21507 { |
|
21508 symbol_c *IN_type_symbol = param_data_type; |
|
21509 last_type_symbol = param_data_type; |
|
21510 |
|
21511 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21512 { |
|
21513 |
|
21514 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
21515 return return_type_symbol; |
|
21516 |
|
21517 } |
|
21518 |
|
21519 ERROR; |
|
21520 } |
|
21521 |
|
21522 }/*function_string_to_bool*/ |
|
21523 break; |
|
21524 |
|
21525 /**** |
|
21526 *STRING_TO_SINT |
|
21527 */ |
|
21528 case function_string_to_sint : |
|
21529 { |
|
21530 symbol_c *last_type_symbol = NULL; |
|
21531 |
|
21532 { |
|
21533 symbol_c *IN_type_symbol = param_data_type; |
|
21534 last_type_symbol = param_data_type; |
|
21535 |
|
21536 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21537 { |
|
21538 |
|
21539 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
21540 return return_type_symbol; |
|
21541 |
|
21542 } |
|
21543 |
|
21544 ERROR; |
|
21545 } |
|
21546 |
|
21547 }/*function_string_to_sint*/ |
|
21548 break; |
|
21549 |
|
21550 /**** |
|
21551 *STRING_TO_INT |
|
21552 */ |
|
21553 case function_string_to_int : |
|
21554 { |
|
21555 symbol_c *last_type_symbol = NULL; |
|
21556 |
|
21557 { |
|
21558 symbol_c *IN_type_symbol = param_data_type; |
|
21559 last_type_symbol = param_data_type; |
|
21560 |
|
21561 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21562 { |
|
21563 |
|
21564 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
21565 return return_type_symbol; |
|
21566 |
|
21567 } |
|
21568 |
|
21569 ERROR; |
|
21570 } |
|
21571 |
|
21572 }/*function_string_to_int*/ |
|
21573 break; |
|
21574 |
|
21575 /**** |
|
21576 *STRING_TO_DINT |
|
21577 */ |
|
21578 case function_string_to_dint : |
|
21579 { |
|
21580 symbol_c *last_type_symbol = NULL; |
|
21581 |
|
21582 { |
|
21583 symbol_c *IN_type_symbol = param_data_type; |
|
21584 last_type_symbol = param_data_type; |
|
21585 |
|
21586 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21587 { |
|
21588 |
|
21589 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
21590 return return_type_symbol; |
|
21591 |
|
21592 } |
|
21593 |
|
21594 ERROR; |
|
21595 } |
|
21596 |
|
21597 }/*function_string_to_dint*/ |
|
21598 break; |
|
21599 |
|
21600 /**** |
|
21601 *STRING_TO_LINT |
|
21602 */ |
|
21603 case function_string_to_lint : |
|
21604 { |
|
21605 symbol_c *last_type_symbol = NULL; |
|
21606 |
|
21607 { |
|
21608 symbol_c *IN_type_symbol = param_data_type; |
|
21609 last_type_symbol = param_data_type; |
|
21610 |
|
21611 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21612 { |
|
21613 |
|
21614 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
21615 return return_type_symbol; |
|
21616 |
|
21617 } |
|
21618 |
|
21619 ERROR; |
|
21620 } |
|
21621 |
|
21622 }/*function_string_to_lint*/ |
|
21623 break; |
|
21624 |
|
21625 /**** |
|
21626 *STRING_TO_USINT |
|
21627 */ |
|
21628 case function_string_to_usint : |
|
21629 { |
|
21630 symbol_c *last_type_symbol = NULL; |
|
21631 |
|
21632 { |
|
21633 symbol_c *IN_type_symbol = param_data_type; |
|
21634 last_type_symbol = param_data_type; |
|
21635 |
|
21636 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21637 { |
|
21638 |
|
21639 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
21640 return return_type_symbol; |
|
21641 |
|
21642 } |
|
21643 |
|
21644 ERROR; |
|
21645 } |
|
21646 |
|
21647 }/*function_string_to_usint*/ |
|
21648 break; |
|
21649 |
|
21650 /**** |
|
21651 *STRING_TO_UINT |
|
21652 */ |
|
21653 case function_string_to_uint : |
|
21654 { |
|
21655 symbol_c *last_type_symbol = NULL; |
|
21656 |
|
21657 { |
|
21658 symbol_c *IN_type_symbol = param_data_type; |
|
21659 last_type_symbol = param_data_type; |
|
21660 |
|
21661 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21662 { |
|
21663 |
|
21664 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
21665 return return_type_symbol; |
|
21666 |
|
21667 } |
|
21668 |
|
21669 ERROR; |
|
21670 } |
|
21671 |
|
21672 }/*function_string_to_uint*/ |
|
21673 break; |
|
21674 |
|
21675 /**** |
|
21676 *STRING_TO_UDINT |
|
21677 */ |
|
21678 case function_string_to_udint : |
|
21679 { |
|
21680 symbol_c *last_type_symbol = NULL; |
|
21681 |
|
21682 { |
|
21683 symbol_c *IN_type_symbol = param_data_type; |
|
21684 last_type_symbol = param_data_type; |
|
21685 |
|
21686 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21687 { |
|
21688 |
|
21689 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
21690 return return_type_symbol; |
|
21691 |
|
21692 } |
|
21693 |
|
21694 ERROR; |
|
21695 } |
|
21696 |
|
21697 }/*function_string_to_udint*/ |
|
21698 break; |
|
21699 |
|
21700 /**** |
|
21701 *STRING_TO_ULINT |
|
21702 */ |
|
21703 case function_string_to_ulint : |
|
21704 { |
|
21705 symbol_c *last_type_symbol = NULL; |
|
21706 |
|
21707 { |
|
21708 symbol_c *IN_type_symbol = param_data_type; |
|
21709 last_type_symbol = param_data_type; |
|
21710 |
|
21711 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21712 { |
|
21713 |
|
21714 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
21715 return return_type_symbol; |
|
21716 |
|
21717 } |
|
21718 |
|
21719 ERROR; |
|
21720 } |
|
21721 |
|
21722 }/*function_string_to_ulint*/ |
|
21723 break; |
|
21724 |
|
21725 /**** |
|
21726 *STRING_TO_REAL |
|
21727 */ |
|
21728 case function_string_to_real : |
|
21729 { |
|
21730 symbol_c *last_type_symbol = NULL; |
|
21731 |
|
21732 { |
|
21733 symbol_c *IN_type_symbol = param_data_type; |
|
21734 last_type_symbol = param_data_type; |
|
21735 |
|
21736 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21737 { |
|
21738 |
|
21739 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
21740 return return_type_symbol; |
|
21741 |
|
21742 } |
|
21743 |
|
21744 ERROR; |
|
21745 } |
|
21746 |
|
21747 }/*function_string_to_real*/ |
|
21748 break; |
|
21749 |
|
21750 /**** |
|
21751 *STRING_TO_LREAL |
|
21752 */ |
|
21753 case function_string_to_lreal : |
|
21754 { |
|
21755 symbol_c *last_type_symbol = NULL; |
|
21756 |
|
21757 { |
|
21758 symbol_c *IN_type_symbol = param_data_type; |
|
21759 last_type_symbol = param_data_type; |
|
21760 |
|
21761 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21762 { |
|
21763 |
|
21764 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
21765 return return_type_symbol; |
|
21766 |
|
21767 } |
|
21768 |
|
21769 ERROR; |
|
21770 } |
|
21771 |
|
21772 }/*function_string_to_lreal*/ |
|
21773 break; |
|
21774 |
|
21775 /**** |
|
21776 *STRING_TO_TIME |
|
21777 */ |
|
21778 case function_string_to_time : |
|
21779 { |
|
21780 symbol_c *last_type_symbol = NULL; |
|
21781 |
|
21782 { |
|
21783 symbol_c *IN_type_symbol = param_data_type; |
|
21784 last_type_symbol = param_data_type; |
|
21785 |
|
21786 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21787 { |
|
21788 |
|
21789 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
21790 return return_type_symbol; |
|
21791 |
|
21792 } |
|
21793 |
|
21794 ERROR; |
|
21795 } |
|
21796 |
|
21797 }/*function_string_to_time*/ |
|
21798 break; |
|
21799 |
|
21800 /**** |
|
21801 *STRING_TO_DATE |
|
21802 */ |
|
21803 case function_string_to_date : |
|
21804 { |
|
21805 symbol_c *last_type_symbol = NULL; |
|
21806 |
|
21807 { |
|
21808 symbol_c *IN_type_symbol = param_data_type; |
|
21809 last_type_symbol = param_data_type; |
|
21810 |
|
21811 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21812 { |
|
21813 |
|
21814 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
21815 return return_type_symbol; |
|
21816 |
|
21817 } |
|
21818 |
|
21819 ERROR; |
|
21820 } |
|
21821 |
|
21822 }/*function_string_to_date*/ |
|
21823 break; |
|
21824 |
|
21825 /**** |
|
21826 *STRING_TO_TOD |
|
21827 */ |
|
21828 case function_string_to_tod : |
|
21829 { |
|
21830 symbol_c *last_type_symbol = NULL; |
|
21831 |
|
21832 { |
|
21833 symbol_c *IN_type_symbol = param_data_type; |
|
21834 last_type_symbol = param_data_type; |
|
21835 |
|
21836 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21837 { |
23884 { |
21838 |
23885 |
21839 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
23886 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
21840 return return_type_symbol; |
23887 return return_type_symbol; |
21841 |
23888 |
21842 } |
23889 } |
21843 |
23890 |
21844 ERROR; |
23891 ERROR; |
21845 } |
23892 } |
21846 |
23893 |
21847 }/*function_string_to_tod*/ |
|
21848 break; |
|
21849 |
|
21850 /**** |
|
21851 *STRING_TO_DT |
|
21852 */ |
|
21853 case function_string_to_dt : |
|
21854 { |
|
21855 symbol_c *last_type_symbol = NULL; |
|
21856 |
|
21857 { |
|
21858 symbol_c *IN_type_symbol = param_data_type; |
|
21859 last_type_symbol = param_data_type; |
|
21860 |
|
21861 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21862 { |
|
21863 |
|
21864 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
21865 return return_type_symbol; |
|
21866 |
|
21867 } |
|
21868 |
|
21869 ERROR; |
|
21870 } |
|
21871 |
|
21872 }/*function_string_to_dt*/ |
|
21873 break; |
|
21874 |
|
21875 /**** |
|
21876 *STRING_TO_BYTE |
|
21877 */ |
|
21878 case function_string_to_byte : |
|
21879 { |
|
21880 symbol_c *last_type_symbol = NULL; |
|
21881 |
|
21882 { |
|
21883 symbol_c *IN_type_symbol = param_data_type; |
|
21884 last_type_symbol = param_data_type; |
|
21885 |
|
21886 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21887 { |
|
21888 |
|
21889 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
21890 return return_type_symbol; |
|
21891 |
|
21892 } |
|
21893 |
|
21894 ERROR; |
|
21895 } |
|
21896 |
|
21897 }/*function_string_to_byte*/ |
|
21898 break; |
|
21899 |
|
21900 /**** |
|
21901 *STRING_TO_WORD |
|
21902 */ |
|
21903 case function_string_to_word : |
|
21904 { |
|
21905 symbol_c *last_type_symbol = NULL; |
|
21906 |
|
21907 { |
|
21908 symbol_c *IN_type_symbol = param_data_type; |
|
21909 last_type_symbol = param_data_type; |
|
21910 |
|
21911 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21912 { |
|
21913 |
|
21914 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
21915 return return_type_symbol; |
|
21916 |
|
21917 } |
|
21918 |
|
21919 ERROR; |
|
21920 } |
|
21921 |
|
21922 }/*function_string_to_word*/ |
|
21923 break; |
|
21924 |
|
21925 /**** |
|
21926 *STRING_TO_DWORD |
|
21927 */ |
|
21928 case function_string_to_dword : |
|
21929 { |
|
21930 symbol_c *last_type_symbol = NULL; |
|
21931 |
|
21932 { |
|
21933 symbol_c *IN_type_symbol = param_data_type; |
|
21934 last_type_symbol = param_data_type; |
|
21935 |
|
21936 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21937 { |
|
21938 |
|
21939 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
21940 return return_type_symbol; |
|
21941 |
|
21942 } |
|
21943 |
|
21944 ERROR; |
|
21945 } |
|
21946 |
|
21947 }/*function_string_to_dword*/ |
|
21948 break; |
|
21949 |
|
21950 /**** |
|
21951 *STRING_TO_LWORD |
|
21952 */ |
|
21953 case function_string_to_lword : |
|
21954 { |
|
21955 symbol_c *last_type_symbol = NULL; |
|
21956 |
|
21957 { |
|
21958 symbol_c *IN_type_symbol = param_data_type; |
|
21959 last_type_symbol = param_data_type; |
|
21960 |
|
21961 if (typeid(*last_type_symbol) == typeid(string_type_name_c)) |
|
21962 { |
|
21963 |
|
21964 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
21965 return return_type_symbol; |
|
21966 |
|
21967 } |
|
21968 |
|
21969 ERROR; |
|
21970 } |
|
21971 |
|
21972 }/*function_string_to_lword*/ |
|
21973 break; |
|
21974 |
|
21975 /**** |
|
21976 *BYTE_TO_BOOL |
|
21977 */ |
|
21978 case function_byte_to_bool : |
|
21979 { |
|
21980 symbol_c *last_type_symbol = NULL; |
|
21981 |
|
21982 { |
|
21983 symbol_c *IN_type_symbol = param_data_type; |
|
21984 last_type_symbol = param_data_type; |
|
21985 |
|
21986 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
21987 { |
|
21988 |
|
21989 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
21990 return return_type_symbol; |
|
21991 |
|
21992 } |
|
21993 |
|
21994 ERROR; |
|
21995 } |
|
21996 |
|
21997 }/*function_byte_to_bool*/ |
|
21998 break; |
|
21999 |
|
22000 /**** |
|
22001 *BYTE_TO_SINT |
|
22002 */ |
|
22003 case function_byte_to_sint : |
|
22004 { |
|
22005 symbol_c *last_type_symbol = NULL; |
|
22006 |
|
22007 { |
|
22008 symbol_c *IN_type_symbol = param_data_type; |
|
22009 last_type_symbol = param_data_type; |
|
22010 |
|
22011 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22012 { |
|
22013 |
|
22014 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
22015 return return_type_symbol; |
|
22016 |
|
22017 } |
|
22018 |
|
22019 ERROR; |
|
22020 } |
|
22021 |
|
22022 }/*function_byte_to_sint*/ |
|
22023 break; |
|
22024 |
|
22025 /**** |
|
22026 *BYTE_TO_INT |
|
22027 */ |
|
22028 case function_byte_to_int : |
|
22029 { |
|
22030 symbol_c *last_type_symbol = NULL; |
|
22031 |
|
22032 { |
|
22033 symbol_c *IN_type_symbol = param_data_type; |
|
22034 last_type_symbol = param_data_type; |
|
22035 |
|
22036 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22037 { |
|
22038 |
|
22039 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
22040 return return_type_symbol; |
|
22041 |
|
22042 } |
|
22043 |
|
22044 ERROR; |
|
22045 } |
|
22046 |
|
22047 }/*function_byte_to_int*/ |
|
22048 break; |
|
22049 |
|
22050 /**** |
|
22051 *BYTE_TO_DINT |
|
22052 */ |
|
22053 case function_byte_to_dint : |
|
22054 { |
|
22055 symbol_c *last_type_symbol = NULL; |
|
22056 |
|
22057 { |
|
22058 symbol_c *IN_type_symbol = param_data_type; |
|
22059 last_type_symbol = param_data_type; |
|
22060 |
|
22061 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22062 { |
|
22063 |
|
22064 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
22065 return return_type_symbol; |
|
22066 |
|
22067 } |
|
22068 |
|
22069 ERROR; |
|
22070 } |
|
22071 |
|
22072 }/*function_byte_to_dint*/ |
|
22073 break; |
|
22074 |
|
22075 /**** |
|
22076 *BYTE_TO_LINT |
|
22077 */ |
|
22078 case function_byte_to_lint : |
|
22079 { |
|
22080 symbol_c *last_type_symbol = NULL; |
|
22081 |
|
22082 { |
|
22083 symbol_c *IN_type_symbol = param_data_type; |
|
22084 last_type_symbol = param_data_type; |
|
22085 |
|
22086 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22087 { |
|
22088 |
|
22089 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
22090 return return_type_symbol; |
|
22091 |
|
22092 } |
|
22093 |
|
22094 ERROR; |
|
22095 } |
|
22096 |
|
22097 }/*function_byte_to_lint*/ |
|
22098 break; |
|
22099 |
|
22100 /**** |
|
22101 *BYTE_TO_USINT |
|
22102 */ |
|
22103 case function_byte_to_usint : |
|
22104 { |
|
22105 symbol_c *last_type_symbol = NULL; |
|
22106 |
|
22107 { |
|
22108 symbol_c *IN_type_symbol = param_data_type; |
|
22109 last_type_symbol = param_data_type; |
|
22110 |
|
22111 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22112 { |
|
22113 |
|
22114 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
22115 return return_type_symbol; |
|
22116 |
|
22117 } |
|
22118 |
|
22119 ERROR; |
|
22120 } |
|
22121 |
|
22122 }/*function_byte_to_usint*/ |
|
22123 break; |
|
22124 |
|
22125 /**** |
|
22126 *BYTE_TO_UINT |
|
22127 */ |
|
22128 case function_byte_to_uint : |
|
22129 { |
|
22130 symbol_c *last_type_symbol = NULL; |
|
22131 |
|
22132 { |
|
22133 symbol_c *IN_type_symbol = param_data_type; |
|
22134 last_type_symbol = param_data_type; |
|
22135 |
|
22136 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22137 { |
|
22138 |
|
22139 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
22140 return return_type_symbol; |
|
22141 |
|
22142 } |
|
22143 |
|
22144 ERROR; |
|
22145 } |
|
22146 |
|
22147 }/*function_byte_to_uint*/ |
|
22148 break; |
|
22149 |
|
22150 /**** |
|
22151 *BYTE_TO_UDINT |
|
22152 */ |
|
22153 case function_byte_to_udint : |
|
22154 { |
|
22155 symbol_c *last_type_symbol = NULL; |
|
22156 |
|
22157 { |
|
22158 symbol_c *IN_type_symbol = param_data_type; |
|
22159 last_type_symbol = param_data_type; |
|
22160 |
|
22161 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22162 { |
|
22163 |
|
22164 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
22165 return return_type_symbol; |
|
22166 |
|
22167 } |
|
22168 |
|
22169 ERROR; |
|
22170 } |
|
22171 |
|
22172 }/*function_byte_to_udint*/ |
|
22173 break; |
|
22174 |
|
22175 /**** |
|
22176 *BYTE_TO_ULINT |
|
22177 */ |
|
22178 case function_byte_to_ulint : |
|
22179 { |
|
22180 symbol_c *last_type_symbol = NULL; |
|
22181 |
|
22182 { |
|
22183 symbol_c *IN_type_symbol = param_data_type; |
|
22184 last_type_symbol = param_data_type; |
|
22185 |
|
22186 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22187 { |
|
22188 |
|
22189 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
22190 return return_type_symbol; |
|
22191 |
|
22192 } |
|
22193 |
|
22194 ERROR; |
|
22195 } |
|
22196 |
|
22197 }/*function_byte_to_ulint*/ |
|
22198 break; |
|
22199 |
|
22200 /**** |
|
22201 *BYTE_TO_REAL |
|
22202 */ |
|
22203 case function_byte_to_real : |
|
22204 { |
|
22205 symbol_c *last_type_symbol = NULL; |
|
22206 |
|
22207 { |
|
22208 symbol_c *IN_type_symbol = param_data_type; |
|
22209 last_type_symbol = param_data_type; |
|
22210 |
|
22211 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22212 { |
|
22213 |
|
22214 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
22215 return return_type_symbol; |
|
22216 |
|
22217 } |
|
22218 |
|
22219 ERROR; |
|
22220 } |
|
22221 |
|
22222 }/*function_byte_to_real*/ |
|
22223 break; |
|
22224 |
|
22225 /**** |
|
22226 *BYTE_TO_LREAL |
|
22227 */ |
|
22228 case function_byte_to_lreal : |
|
22229 { |
|
22230 symbol_c *last_type_symbol = NULL; |
|
22231 |
|
22232 { |
|
22233 symbol_c *IN_type_symbol = param_data_type; |
|
22234 last_type_symbol = param_data_type; |
|
22235 |
|
22236 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22237 { |
|
22238 |
|
22239 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
22240 return return_type_symbol; |
|
22241 |
|
22242 } |
|
22243 |
|
22244 ERROR; |
|
22245 } |
|
22246 |
|
22247 }/*function_byte_to_lreal*/ |
|
22248 break; |
|
22249 |
|
22250 /**** |
|
22251 *BYTE_TO_TIME |
|
22252 */ |
|
22253 case function_byte_to_time : |
|
22254 { |
|
22255 symbol_c *last_type_symbol = NULL; |
|
22256 |
|
22257 { |
|
22258 symbol_c *IN_type_symbol = param_data_type; |
|
22259 last_type_symbol = param_data_type; |
|
22260 |
|
22261 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22262 { |
|
22263 |
|
22264 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
22265 return return_type_symbol; |
|
22266 |
|
22267 } |
|
22268 |
|
22269 ERROR; |
|
22270 } |
|
22271 |
|
22272 }/*function_byte_to_time*/ |
|
22273 break; |
|
22274 |
|
22275 /**** |
|
22276 *BYTE_TO_DATE |
|
22277 */ |
|
22278 case function_byte_to_date : |
|
22279 { |
|
22280 symbol_c *last_type_symbol = NULL; |
|
22281 |
|
22282 { |
|
22283 symbol_c *IN_type_symbol = param_data_type; |
|
22284 last_type_symbol = param_data_type; |
|
22285 |
|
22286 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22287 { |
|
22288 |
|
22289 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
22290 return return_type_symbol; |
|
22291 |
|
22292 } |
|
22293 |
|
22294 ERROR; |
|
22295 } |
|
22296 |
|
22297 }/*function_byte_to_date*/ |
|
22298 break; |
|
22299 |
|
22300 /**** |
|
22301 *BYTE_TO_TOD |
|
22302 */ |
|
22303 case function_byte_to_tod : |
|
22304 { |
|
22305 symbol_c *last_type_symbol = NULL; |
|
22306 |
|
22307 { |
|
22308 symbol_c *IN_type_symbol = param_data_type; |
|
22309 last_type_symbol = param_data_type; |
|
22310 |
|
22311 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22312 { |
|
22313 |
|
22314 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
22315 return return_type_symbol; |
|
22316 |
|
22317 } |
|
22318 |
|
22319 ERROR; |
|
22320 } |
|
22321 |
|
22322 }/*function_byte_to_tod*/ |
|
22323 break; |
|
22324 |
|
22325 /**** |
|
22326 *BYTE_TO_DT |
|
22327 */ |
|
22328 case function_byte_to_dt : |
|
22329 { |
|
22330 symbol_c *last_type_symbol = NULL; |
|
22331 |
|
22332 { |
|
22333 symbol_c *IN_type_symbol = param_data_type; |
|
22334 last_type_symbol = param_data_type; |
|
22335 |
|
22336 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22337 { |
|
22338 |
|
22339 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
22340 return return_type_symbol; |
|
22341 |
|
22342 } |
|
22343 |
|
22344 ERROR; |
|
22345 } |
|
22346 |
|
22347 }/*function_byte_to_dt*/ |
|
22348 break; |
|
22349 |
|
22350 /**** |
|
22351 *BYTE_TO_STRING |
|
22352 */ |
|
22353 case function_byte_to_string : |
|
22354 { |
|
22355 symbol_c *last_type_symbol = NULL; |
|
22356 |
|
22357 { |
|
22358 symbol_c *IN_type_symbol = param_data_type; |
|
22359 last_type_symbol = param_data_type; |
|
22360 |
|
22361 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22362 { |
|
22363 |
|
22364 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
22365 return return_type_symbol; |
|
22366 |
|
22367 } |
|
22368 |
|
22369 ERROR; |
|
22370 } |
|
22371 |
|
22372 }/*function_byte_to_string*/ |
|
22373 break; |
|
22374 |
|
22375 /**** |
|
22376 *BYTE_TO_WORD |
|
22377 */ |
|
22378 case function_byte_to_word : |
|
22379 { |
|
22380 symbol_c *last_type_symbol = NULL; |
|
22381 |
|
22382 { |
|
22383 symbol_c *IN_type_symbol = param_data_type; |
|
22384 last_type_symbol = param_data_type; |
|
22385 |
|
22386 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22387 { |
|
22388 |
|
22389 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
22390 return return_type_symbol; |
|
22391 |
|
22392 } |
|
22393 |
|
22394 ERROR; |
|
22395 } |
|
22396 |
|
22397 }/*function_byte_to_word*/ |
|
22398 break; |
|
22399 |
|
22400 /**** |
|
22401 *BYTE_TO_DWORD |
|
22402 */ |
|
22403 case function_byte_to_dword : |
|
22404 { |
|
22405 symbol_c *last_type_symbol = NULL; |
|
22406 |
|
22407 { |
|
22408 symbol_c *IN_type_symbol = param_data_type; |
|
22409 last_type_symbol = param_data_type; |
|
22410 |
|
22411 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22412 { |
|
22413 |
|
22414 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
22415 return return_type_symbol; |
|
22416 |
|
22417 } |
|
22418 |
|
22419 ERROR; |
|
22420 } |
|
22421 |
|
22422 }/*function_byte_to_dword*/ |
|
22423 break; |
|
22424 |
|
22425 /**** |
|
22426 *BYTE_TO_LWORD |
|
22427 */ |
|
22428 case function_byte_to_lword : |
|
22429 { |
|
22430 symbol_c *last_type_symbol = NULL; |
|
22431 |
|
22432 { |
|
22433 symbol_c *IN_type_symbol = param_data_type; |
|
22434 last_type_symbol = param_data_type; |
|
22435 |
|
22436 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
22437 { |
|
22438 |
|
22439 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
22440 return return_type_symbol; |
|
22441 |
|
22442 } |
|
22443 |
|
22444 ERROR; |
|
22445 } |
|
22446 |
|
22447 }/*function_byte_to_lword*/ |
|
22448 break; |
|
22449 |
|
22450 /**** |
|
22451 *WORD_TO_BOOL |
|
22452 */ |
|
22453 case function_word_to_bool : |
|
22454 { |
|
22455 symbol_c *last_type_symbol = NULL; |
|
22456 |
|
22457 { |
|
22458 symbol_c *IN_type_symbol = param_data_type; |
|
22459 last_type_symbol = param_data_type; |
|
22460 |
|
22461 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22462 { |
|
22463 |
|
22464 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
22465 return return_type_symbol; |
|
22466 |
|
22467 } |
|
22468 |
|
22469 ERROR; |
|
22470 } |
|
22471 |
|
22472 }/*function_word_to_bool*/ |
|
22473 break; |
|
22474 |
|
22475 /**** |
|
22476 *WORD_TO_SINT |
|
22477 */ |
|
22478 case function_word_to_sint : |
|
22479 { |
|
22480 symbol_c *last_type_symbol = NULL; |
|
22481 |
|
22482 { |
|
22483 symbol_c *IN_type_symbol = param_data_type; |
|
22484 last_type_symbol = param_data_type; |
|
22485 |
|
22486 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22487 { |
|
22488 |
|
22489 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
22490 return return_type_symbol; |
|
22491 |
|
22492 } |
|
22493 |
|
22494 ERROR; |
|
22495 } |
|
22496 |
|
22497 }/*function_word_to_sint*/ |
|
22498 break; |
|
22499 |
|
22500 /**** |
|
22501 *WORD_TO_INT |
|
22502 */ |
|
22503 case function_word_to_int : |
|
22504 { |
|
22505 symbol_c *last_type_symbol = NULL; |
|
22506 |
|
22507 { |
|
22508 symbol_c *IN_type_symbol = param_data_type; |
|
22509 last_type_symbol = param_data_type; |
|
22510 |
|
22511 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22512 { |
|
22513 |
|
22514 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
22515 return return_type_symbol; |
|
22516 |
|
22517 } |
|
22518 |
|
22519 ERROR; |
|
22520 } |
|
22521 |
|
22522 }/*function_word_to_int*/ |
|
22523 break; |
|
22524 |
|
22525 /**** |
|
22526 *WORD_TO_DINT |
|
22527 */ |
|
22528 case function_word_to_dint : |
|
22529 { |
|
22530 symbol_c *last_type_symbol = NULL; |
|
22531 |
|
22532 { |
|
22533 symbol_c *IN_type_symbol = param_data_type; |
|
22534 last_type_symbol = param_data_type; |
|
22535 |
|
22536 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22537 { |
|
22538 |
|
22539 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
22540 return return_type_symbol; |
|
22541 |
|
22542 } |
|
22543 |
|
22544 ERROR; |
|
22545 } |
|
22546 |
|
22547 }/*function_word_to_dint*/ |
|
22548 break; |
|
22549 |
|
22550 /**** |
|
22551 *WORD_TO_LINT |
|
22552 */ |
|
22553 case function_word_to_lint : |
|
22554 { |
|
22555 symbol_c *last_type_symbol = NULL; |
|
22556 |
|
22557 { |
|
22558 symbol_c *IN_type_symbol = param_data_type; |
|
22559 last_type_symbol = param_data_type; |
|
22560 |
|
22561 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22562 { |
|
22563 |
|
22564 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
22565 return return_type_symbol; |
|
22566 |
|
22567 } |
|
22568 |
|
22569 ERROR; |
|
22570 } |
|
22571 |
|
22572 }/*function_word_to_lint*/ |
|
22573 break; |
|
22574 |
|
22575 /**** |
|
22576 *WORD_TO_USINT |
|
22577 */ |
|
22578 case function_word_to_usint : |
|
22579 { |
|
22580 symbol_c *last_type_symbol = NULL; |
|
22581 |
|
22582 { |
|
22583 symbol_c *IN_type_symbol = param_data_type; |
|
22584 last_type_symbol = param_data_type; |
|
22585 |
|
22586 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22587 { |
|
22588 |
|
22589 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
22590 return return_type_symbol; |
|
22591 |
|
22592 } |
|
22593 |
|
22594 ERROR; |
|
22595 } |
|
22596 |
|
22597 }/*function_word_to_usint*/ |
|
22598 break; |
|
22599 |
|
22600 /**** |
|
22601 *WORD_TO_UINT |
|
22602 */ |
|
22603 case function_word_to_uint : |
|
22604 { |
|
22605 symbol_c *last_type_symbol = NULL; |
|
22606 |
|
22607 { |
|
22608 symbol_c *IN_type_symbol = param_data_type; |
|
22609 last_type_symbol = param_data_type; |
|
22610 |
|
22611 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22612 { |
|
22613 |
|
22614 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
22615 return return_type_symbol; |
|
22616 |
|
22617 } |
|
22618 |
|
22619 ERROR; |
|
22620 } |
|
22621 |
|
22622 }/*function_word_to_uint*/ |
|
22623 break; |
|
22624 |
|
22625 /**** |
|
22626 *WORD_TO_UDINT |
|
22627 */ |
|
22628 case function_word_to_udint : |
|
22629 { |
|
22630 symbol_c *last_type_symbol = NULL; |
|
22631 |
|
22632 { |
|
22633 symbol_c *IN_type_symbol = param_data_type; |
|
22634 last_type_symbol = param_data_type; |
|
22635 |
|
22636 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22637 { |
|
22638 |
|
22639 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
22640 return return_type_symbol; |
|
22641 |
|
22642 } |
|
22643 |
|
22644 ERROR; |
|
22645 } |
|
22646 |
|
22647 }/*function_word_to_udint*/ |
|
22648 break; |
|
22649 |
|
22650 /**** |
|
22651 *WORD_TO_ULINT |
|
22652 */ |
|
22653 case function_word_to_ulint : |
|
22654 { |
|
22655 symbol_c *last_type_symbol = NULL; |
|
22656 |
|
22657 { |
|
22658 symbol_c *IN_type_symbol = param_data_type; |
|
22659 last_type_symbol = param_data_type; |
|
22660 |
|
22661 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22662 { |
|
22663 |
|
22664 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
22665 return return_type_symbol; |
|
22666 |
|
22667 } |
|
22668 |
|
22669 ERROR; |
|
22670 } |
|
22671 |
|
22672 }/*function_word_to_ulint*/ |
|
22673 break; |
|
22674 |
|
22675 /**** |
|
22676 *WORD_TO_REAL |
|
22677 */ |
|
22678 case function_word_to_real : |
|
22679 { |
|
22680 symbol_c *last_type_symbol = NULL; |
|
22681 |
|
22682 { |
|
22683 symbol_c *IN_type_symbol = param_data_type; |
|
22684 last_type_symbol = param_data_type; |
|
22685 |
|
22686 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22687 { |
|
22688 |
|
22689 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
22690 return return_type_symbol; |
|
22691 |
|
22692 } |
|
22693 |
|
22694 ERROR; |
|
22695 } |
|
22696 |
|
22697 }/*function_word_to_real*/ |
|
22698 break; |
|
22699 |
|
22700 /**** |
|
22701 *WORD_TO_LREAL |
|
22702 */ |
|
22703 case function_word_to_lreal : |
|
22704 { |
|
22705 symbol_c *last_type_symbol = NULL; |
|
22706 |
|
22707 { |
|
22708 symbol_c *IN_type_symbol = param_data_type; |
|
22709 last_type_symbol = param_data_type; |
|
22710 |
|
22711 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22712 { |
|
22713 |
|
22714 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
22715 return return_type_symbol; |
|
22716 |
|
22717 } |
|
22718 |
|
22719 ERROR; |
|
22720 } |
|
22721 |
|
22722 }/*function_word_to_lreal*/ |
|
22723 break; |
|
22724 |
|
22725 /**** |
|
22726 *WORD_TO_TIME |
|
22727 */ |
|
22728 case function_word_to_time : |
|
22729 { |
|
22730 symbol_c *last_type_symbol = NULL; |
|
22731 |
|
22732 { |
|
22733 symbol_c *IN_type_symbol = param_data_type; |
|
22734 last_type_symbol = param_data_type; |
|
22735 |
|
22736 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22737 { |
|
22738 |
|
22739 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
22740 return return_type_symbol; |
|
22741 |
|
22742 } |
|
22743 |
|
22744 ERROR; |
|
22745 } |
|
22746 |
|
22747 }/*function_word_to_time*/ |
|
22748 break; |
|
22749 |
|
22750 /**** |
|
22751 *WORD_TO_DATE |
|
22752 */ |
|
22753 case function_word_to_date : |
|
22754 { |
|
22755 symbol_c *last_type_symbol = NULL; |
|
22756 |
|
22757 { |
|
22758 symbol_c *IN_type_symbol = param_data_type; |
|
22759 last_type_symbol = param_data_type; |
|
22760 |
|
22761 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22762 { |
|
22763 |
|
22764 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
22765 return return_type_symbol; |
|
22766 |
|
22767 } |
|
22768 |
|
22769 ERROR; |
|
22770 } |
|
22771 |
|
22772 }/*function_word_to_date*/ |
|
22773 break; |
|
22774 |
|
22775 /**** |
|
22776 *WORD_TO_TOD |
|
22777 */ |
|
22778 case function_word_to_tod : |
|
22779 { |
|
22780 symbol_c *last_type_symbol = NULL; |
|
22781 |
|
22782 { |
|
22783 symbol_c *IN_type_symbol = param_data_type; |
|
22784 last_type_symbol = param_data_type; |
|
22785 |
|
22786 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22787 { |
|
22788 |
|
22789 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
22790 return return_type_symbol; |
|
22791 |
|
22792 } |
|
22793 |
|
22794 ERROR; |
|
22795 } |
|
22796 |
|
22797 }/*function_word_to_tod*/ |
|
22798 break; |
|
22799 |
|
22800 /**** |
|
22801 *WORD_TO_DT |
|
22802 */ |
|
22803 case function_word_to_dt : |
|
22804 { |
|
22805 symbol_c *last_type_symbol = NULL; |
|
22806 |
|
22807 { |
|
22808 symbol_c *IN_type_symbol = param_data_type; |
|
22809 last_type_symbol = param_data_type; |
|
22810 |
|
22811 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22812 { |
|
22813 |
|
22814 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
22815 return return_type_symbol; |
|
22816 |
|
22817 } |
|
22818 |
|
22819 ERROR; |
|
22820 } |
|
22821 |
|
22822 }/*function_word_to_dt*/ |
|
22823 break; |
|
22824 |
|
22825 /**** |
|
22826 *WORD_TO_STRING |
|
22827 */ |
|
22828 case function_word_to_string : |
|
22829 { |
|
22830 symbol_c *last_type_symbol = NULL; |
|
22831 |
|
22832 { |
|
22833 symbol_c *IN_type_symbol = param_data_type; |
|
22834 last_type_symbol = param_data_type; |
|
22835 |
|
22836 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22837 { |
|
22838 |
|
22839 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
22840 return return_type_symbol; |
|
22841 |
|
22842 } |
|
22843 |
|
22844 ERROR; |
|
22845 } |
|
22846 |
|
22847 }/*function_word_to_string*/ |
|
22848 break; |
|
22849 |
|
22850 /**** |
|
22851 *WORD_TO_BYTE |
|
22852 */ |
|
22853 case function_word_to_byte : |
|
22854 { |
|
22855 symbol_c *last_type_symbol = NULL; |
|
22856 |
|
22857 { |
|
22858 symbol_c *IN_type_symbol = param_data_type; |
|
22859 last_type_symbol = param_data_type; |
|
22860 |
|
22861 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22862 { |
|
22863 |
|
22864 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
22865 return return_type_symbol; |
|
22866 |
|
22867 } |
|
22868 |
|
22869 ERROR; |
|
22870 } |
|
22871 |
|
22872 }/*function_word_to_byte*/ |
|
22873 break; |
|
22874 |
|
22875 /**** |
|
22876 *WORD_TO_DWORD |
|
22877 */ |
|
22878 case function_word_to_dword : |
|
22879 { |
|
22880 symbol_c *last_type_symbol = NULL; |
|
22881 |
|
22882 { |
|
22883 symbol_c *IN_type_symbol = param_data_type; |
|
22884 last_type_symbol = param_data_type; |
|
22885 |
|
22886 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22887 { |
|
22888 |
|
22889 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
22890 return return_type_symbol; |
|
22891 |
|
22892 } |
|
22893 |
|
22894 ERROR; |
|
22895 } |
|
22896 |
|
22897 }/*function_word_to_dword*/ |
|
22898 break; |
|
22899 |
|
22900 /**** |
|
22901 *WORD_TO_LWORD |
|
22902 */ |
|
22903 case function_word_to_lword : |
|
22904 { |
|
22905 symbol_c *last_type_symbol = NULL; |
|
22906 |
|
22907 { |
|
22908 symbol_c *IN_type_symbol = param_data_type; |
|
22909 last_type_symbol = param_data_type; |
|
22910 |
|
22911 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
22912 { |
|
22913 |
|
22914 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
22915 return return_type_symbol; |
|
22916 |
|
22917 } |
|
22918 |
|
22919 ERROR; |
|
22920 } |
|
22921 |
|
22922 }/*function_word_to_lword*/ |
|
22923 break; |
|
22924 |
|
22925 /**** |
|
22926 *DWORD_TO_BOOL |
|
22927 */ |
|
22928 case function_dword_to_bool : |
|
22929 { |
|
22930 symbol_c *last_type_symbol = NULL; |
|
22931 |
|
22932 { |
|
22933 symbol_c *IN_type_symbol = param_data_type; |
|
22934 last_type_symbol = param_data_type; |
|
22935 |
|
22936 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
22937 { |
|
22938 |
|
22939 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
22940 return return_type_symbol; |
|
22941 |
|
22942 } |
|
22943 |
|
22944 ERROR; |
|
22945 } |
|
22946 |
|
22947 }/*function_dword_to_bool*/ |
|
22948 break; |
|
22949 |
|
22950 /**** |
|
22951 *DWORD_TO_SINT |
|
22952 */ |
|
22953 case function_dword_to_sint : |
|
22954 { |
|
22955 symbol_c *last_type_symbol = NULL; |
|
22956 |
|
22957 { |
|
22958 symbol_c *IN_type_symbol = param_data_type; |
|
22959 last_type_symbol = param_data_type; |
|
22960 |
|
22961 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
22962 { |
|
22963 |
|
22964 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
22965 return return_type_symbol; |
|
22966 |
|
22967 } |
|
22968 |
|
22969 ERROR; |
|
22970 } |
|
22971 |
|
22972 }/*function_dword_to_sint*/ |
|
22973 break; |
|
22974 |
|
22975 /**** |
|
22976 *DWORD_TO_INT |
|
22977 */ |
|
22978 case function_dword_to_int : |
|
22979 { |
|
22980 symbol_c *last_type_symbol = NULL; |
|
22981 |
|
22982 { |
|
22983 symbol_c *IN_type_symbol = param_data_type; |
|
22984 last_type_symbol = param_data_type; |
|
22985 |
|
22986 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
22987 { |
|
22988 |
|
22989 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
22990 return return_type_symbol; |
|
22991 |
|
22992 } |
|
22993 |
|
22994 ERROR; |
|
22995 } |
|
22996 |
|
22997 }/*function_dword_to_int*/ |
|
22998 break; |
|
22999 |
|
23000 /**** |
|
23001 *DWORD_TO_DINT |
|
23002 */ |
|
23003 case function_dword_to_dint : |
|
23004 { |
|
23005 symbol_c *last_type_symbol = NULL; |
|
23006 |
|
23007 { |
|
23008 symbol_c *IN_type_symbol = param_data_type; |
|
23009 last_type_symbol = param_data_type; |
|
23010 |
|
23011 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
23012 { |
|
23013 |
|
23014 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
23015 return return_type_symbol; |
|
23016 |
|
23017 } |
|
23018 |
|
23019 ERROR; |
|
23020 } |
|
23021 |
|
23022 }/*function_dword_to_dint*/ |
|
23023 break; |
|
23024 |
|
23025 /**** |
|
23026 *DWORD_TO_LINT |
|
23027 */ |
|
23028 case function_dword_to_lint : |
|
23029 { |
|
23030 symbol_c *last_type_symbol = NULL; |
|
23031 |
|
23032 { |
|
23033 symbol_c *IN_type_symbol = param_data_type; |
|
23034 last_type_symbol = param_data_type; |
|
23035 |
|
23036 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
23037 { |
|
23038 |
|
23039 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
23040 return return_type_symbol; |
|
23041 |
|
23042 } |
|
23043 |
|
23044 ERROR; |
|
23045 } |
|
23046 |
|
23047 }/*function_dword_to_lint*/ |
|
23048 break; |
|
23049 |
|
23050 /**** |
|
23051 *DWORD_TO_USINT |
|
23052 */ |
|
23053 case function_dword_to_usint : |
|
23054 { |
|
23055 symbol_c *last_type_symbol = NULL; |
|
23056 |
|
23057 { |
|
23058 symbol_c *IN_type_symbol = param_data_type; |
|
23059 last_type_symbol = param_data_type; |
|
23060 |
|
23061 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
23062 { |
|
23063 |
|
23064 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
23065 return return_type_symbol; |
|
23066 |
|
23067 } |
|
23068 |
|
23069 ERROR; |
|
23070 } |
|
23071 |
|
23072 }/*function_dword_to_usint*/ |
|
23073 break; |
|
23074 |
|
23075 /**** |
|
23076 *DWORD_TO_UINT |
|
23077 */ |
|
23078 case function_dword_to_uint : |
|
23079 { |
|
23080 symbol_c *last_type_symbol = NULL; |
|
23081 |
|
23082 { |
|
23083 symbol_c *IN_type_symbol = param_data_type; |
|
23084 last_type_symbol = param_data_type; |
|
23085 |
|
23086 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
23087 { |
|
23088 |
|
23089 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
23090 return return_type_symbol; |
|
23091 |
|
23092 } |
|
23093 |
|
23094 ERROR; |
|
23095 } |
|
23096 |
|
23097 }/*function_dword_to_uint*/ |
|
23098 break; |
|
23099 |
|
23100 /**** |
|
23101 *DWORD_TO_UDINT |
|
23102 */ |
|
23103 case function_dword_to_udint : |
|
23104 { |
|
23105 symbol_c *last_type_symbol = NULL; |
|
23106 |
|
23107 { |
|
23108 symbol_c *IN_type_symbol = param_data_type; |
|
23109 last_type_symbol = param_data_type; |
|
23110 |
|
23111 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
23112 { |
|
23113 |
|
23114 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
23115 return return_type_symbol; |
|
23116 |
|
23117 } |
|
23118 |
|
23119 ERROR; |
|
23120 } |
|
23121 |
|
23122 }/*function_dword_to_udint*/ |
|
23123 break; |
|
23124 |
|
23125 /**** |
|
23126 *DWORD_TO_ULINT |
|
23127 */ |
|
23128 case function_dword_to_ulint : |
|
23129 { |
|
23130 symbol_c *last_type_symbol = NULL; |
|
23131 |
|
23132 { |
|
23133 symbol_c *IN_type_symbol = param_data_type; |
|
23134 last_type_symbol = param_data_type; |
|
23135 |
|
23136 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
23137 { |
|
23138 |
|
23139 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
23140 return return_type_symbol; |
|
23141 |
|
23142 } |
|
23143 |
|
23144 ERROR; |
|
23145 } |
|
23146 |
|
23147 }/*function_dword_to_ulint*/ |
|
23148 break; |
|
23149 |
|
23150 /**** |
|
23151 *DWORD_TO_REAL |
|
23152 */ |
|
23153 case function_dword_to_real : |
|
23154 { |
|
23155 symbol_c *last_type_symbol = NULL; |
|
23156 |
|
23157 { |
|
23158 symbol_c *IN_type_symbol = param_data_type; |
|
23159 last_type_symbol = param_data_type; |
|
23160 |
|
23161 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
23162 { |
|
23163 |
|
23164 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
23165 return return_type_symbol; |
|
23166 |
|
23167 } |
|
23168 |
|
23169 ERROR; |
|
23170 } |
|
23171 |
|
23172 }/*function_dword_to_real*/ |
|
23173 break; |
|
23174 |
|
23175 /**** |
|
23176 *DWORD_TO_LREAL |
|
23177 */ |
|
23178 case function_dword_to_lreal : |
|
23179 { |
|
23180 symbol_c *last_type_symbol = NULL; |
|
23181 |
|
23182 { |
|
23183 symbol_c *IN_type_symbol = param_data_type; |
|
23184 last_type_symbol = param_data_type; |
|
23185 |
|
23186 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
23187 { |
|
23188 |
|
23189 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
23190 return return_type_symbol; |
|
23191 |
|
23192 } |
|
23193 |
|
23194 ERROR; |
|
23195 } |
|
23196 |
|
23197 }/*function_dword_to_lreal*/ |
|
23198 break; |
|
23199 |
|
23200 /**** |
|
23201 *DWORD_TO_TIME |
|
23202 */ |
|
23203 case function_dword_to_time : |
|
23204 { |
|
23205 symbol_c *last_type_symbol = NULL; |
|
23206 |
|
23207 { |
|
23208 symbol_c *IN_type_symbol = param_data_type; |
|
23209 last_type_symbol = param_data_type; |
|
23210 |
|
23211 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
23212 { |
|
23213 |
|
23214 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
23215 return return_type_symbol; |
|
23216 |
|
23217 } |
|
23218 |
|
23219 ERROR; |
|
23220 } |
|
23221 |
|
23222 }/*function_dword_to_time*/ |
|
23223 break; |
|
23224 |
|
23225 /**** |
|
23226 *DWORD_TO_DATE |
|
23227 */ |
|
23228 case function_dword_to_date : |
|
23229 { |
|
23230 symbol_c *last_type_symbol = NULL; |
|
23231 |
|
23232 { |
|
23233 symbol_c *IN_type_symbol = param_data_type; |
|
23234 last_type_symbol = param_data_type; |
|
23235 |
|
23236 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
23237 { |
|
23238 |
|
23239 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
23240 return return_type_symbol; |
|
23241 |
|
23242 } |
|
23243 |
|
23244 ERROR; |
|
23245 } |
|
23246 |
|
23247 }/*function_dword_to_date*/ |
|
23248 break; |
|
23249 |
|
23250 /**** |
|
23251 *DWORD_TO_TOD |
|
23252 */ |
|
23253 case function_dword_to_tod : |
|
23254 { |
|
23255 symbol_c *last_type_symbol = NULL; |
|
23256 |
|
23257 { |
|
23258 symbol_c *IN_type_symbol = param_data_type; |
|
23259 last_type_symbol = param_data_type; |
|
23260 |
|
23261 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
23262 { |
|
23263 |
|
23264 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
23265 return return_type_symbol; |
|
23266 |
|
23267 } |
|
23268 |
|
23269 ERROR; |
|
23270 } |
|
23271 |
|
23272 }/*function_dword_to_tod*/ |
|
23273 break; |
|
23274 |
|
23275 /**** |
|
23276 *DWORD_TO_DT |
|
23277 */ |
|
23278 case function_dword_to_dt : |
|
23279 { |
|
23280 symbol_c *last_type_symbol = NULL; |
|
23281 |
|
23282 { |
|
23283 symbol_c *IN_type_symbol = param_data_type; |
|
23284 last_type_symbol = param_data_type; |
|
23285 |
|
23286 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
23287 { |
|
23288 |
|
23289 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
23290 return return_type_symbol; |
|
23291 |
|
23292 } |
|
23293 |
|
23294 ERROR; |
|
23295 } |
|
23296 |
|
23297 }/*function_dword_to_dt*/ |
|
23298 break; |
|
23299 |
|
23300 /**** |
|
23301 *DWORD_TO_STRING |
|
23302 */ |
|
23303 case function_dword_to_string : |
|
23304 { |
|
23305 symbol_c *last_type_symbol = NULL; |
|
23306 |
|
23307 { |
|
23308 symbol_c *IN_type_symbol = param_data_type; |
|
23309 last_type_symbol = param_data_type; |
|
23310 |
|
23311 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
23312 { |
|
23313 |
|
23314 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
23315 return return_type_symbol; |
|
23316 |
|
23317 } |
|
23318 |
|
23319 ERROR; |
|
23320 } |
|
23321 |
|
23322 }/*function_dword_to_string*/ |
|
23323 break; |
|
23324 |
|
23325 /**** |
|
23326 *DWORD_TO_BYTE |
|
23327 */ |
|
23328 case function_dword_to_byte : |
|
23329 { |
|
23330 symbol_c *last_type_symbol = NULL; |
|
23331 |
|
23332 { |
|
23333 symbol_c *IN_type_symbol = param_data_type; |
|
23334 last_type_symbol = param_data_type; |
|
23335 |
|
23336 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
23337 { |
|
23338 |
|
23339 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
23340 return return_type_symbol; |
|
23341 |
|
23342 } |
|
23343 |
|
23344 ERROR; |
|
23345 } |
|
23346 |
|
23347 }/*function_dword_to_byte*/ |
|
23348 break; |
|
23349 |
|
23350 /**** |
|
23351 *DWORD_TO_WORD |
|
23352 */ |
|
23353 case function_dword_to_word : |
|
23354 { |
|
23355 symbol_c *last_type_symbol = NULL; |
|
23356 |
|
23357 { |
|
23358 symbol_c *IN_type_symbol = param_data_type; |
|
23359 last_type_symbol = param_data_type; |
|
23360 |
|
23361 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
23362 { |
|
23363 |
|
23364 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
23365 return return_type_symbol; |
|
23366 |
|
23367 } |
|
23368 |
|
23369 ERROR; |
|
23370 } |
|
23371 |
|
23372 }/*function_dword_to_word*/ |
|
23373 break; |
|
23374 |
|
23375 /**** |
|
23376 *DWORD_TO_LWORD |
|
23377 */ |
|
23378 case function_dword_to_lword : |
|
23379 { |
|
23380 symbol_c *last_type_symbol = NULL; |
|
23381 |
|
23382 { |
|
23383 symbol_c *IN_type_symbol = param_data_type; |
|
23384 last_type_symbol = param_data_type; |
|
23385 |
|
23386 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
23387 { |
|
23388 |
|
23389 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name; |
|
23390 return return_type_symbol; |
|
23391 |
|
23392 } |
|
23393 |
|
23394 ERROR; |
|
23395 } |
|
23396 |
|
23397 }/*function_dword_to_lword*/ |
|
23398 break; |
|
23399 |
|
23400 /**** |
|
23401 *LWORD_TO_BOOL |
|
23402 */ |
|
23403 case function_lword_to_bool : |
|
23404 { |
|
23405 symbol_c *last_type_symbol = NULL; |
|
23406 |
|
23407 { |
|
23408 symbol_c *IN_type_symbol = param_data_type; |
|
23409 last_type_symbol = param_data_type; |
|
23410 |
|
23411 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23412 { |
|
23413 |
|
23414 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name; |
|
23415 return return_type_symbol; |
|
23416 |
|
23417 } |
|
23418 |
|
23419 ERROR; |
|
23420 } |
|
23421 |
|
23422 }/*function_lword_to_bool*/ |
|
23423 break; |
|
23424 |
|
23425 /**** |
|
23426 *LWORD_TO_SINT |
|
23427 */ |
|
23428 case function_lword_to_sint : |
|
23429 { |
|
23430 symbol_c *last_type_symbol = NULL; |
|
23431 |
|
23432 { |
|
23433 symbol_c *IN_type_symbol = param_data_type; |
|
23434 last_type_symbol = param_data_type; |
|
23435 |
|
23436 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23437 { |
|
23438 |
|
23439 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name; |
|
23440 return return_type_symbol; |
|
23441 |
|
23442 } |
|
23443 |
|
23444 ERROR; |
|
23445 } |
|
23446 |
|
23447 }/*function_lword_to_sint*/ |
|
23448 break; |
|
23449 |
|
23450 /**** |
|
23451 *LWORD_TO_INT |
|
23452 */ |
|
23453 case function_lword_to_int : |
|
23454 { |
|
23455 symbol_c *last_type_symbol = NULL; |
|
23456 |
|
23457 { |
|
23458 symbol_c *IN_type_symbol = param_data_type; |
|
23459 last_type_symbol = param_data_type; |
|
23460 |
|
23461 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23462 { |
|
23463 |
|
23464 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name; |
|
23465 return return_type_symbol; |
|
23466 |
|
23467 } |
|
23468 |
|
23469 ERROR; |
|
23470 } |
|
23471 |
|
23472 }/*function_lword_to_int*/ |
|
23473 break; |
|
23474 |
|
23475 /**** |
|
23476 *LWORD_TO_DINT |
|
23477 */ |
|
23478 case function_lword_to_dint : |
|
23479 { |
|
23480 symbol_c *last_type_symbol = NULL; |
|
23481 |
|
23482 { |
|
23483 symbol_c *IN_type_symbol = param_data_type; |
|
23484 last_type_symbol = param_data_type; |
|
23485 |
|
23486 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23487 { |
|
23488 |
|
23489 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name; |
|
23490 return return_type_symbol; |
|
23491 |
|
23492 } |
|
23493 |
|
23494 ERROR; |
|
23495 } |
|
23496 |
|
23497 }/*function_lword_to_dint*/ |
|
23498 break; |
|
23499 |
|
23500 /**** |
|
23501 *LWORD_TO_LINT |
|
23502 */ |
|
23503 case function_lword_to_lint : |
|
23504 { |
|
23505 symbol_c *last_type_symbol = NULL; |
|
23506 |
|
23507 { |
|
23508 symbol_c *IN_type_symbol = param_data_type; |
|
23509 last_type_symbol = param_data_type; |
|
23510 |
|
23511 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23512 { |
|
23513 |
|
23514 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name; |
|
23515 return return_type_symbol; |
|
23516 |
|
23517 } |
|
23518 |
|
23519 ERROR; |
|
23520 } |
|
23521 |
|
23522 }/*function_lword_to_lint*/ |
|
23523 break; |
|
23524 |
|
23525 /**** |
|
23526 *LWORD_TO_USINT |
|
23527 */ |
|
23528 case function_lword_to_usint : |
|
23529 { |
|
23530 symbol_c *last_type_symbol = NULL; |
|
23531 |
|
23532 { |
|
23533 symbol_c *IN_type_symbol = param_data_type; |
|
23534 last_type_symbol = param_data_type; |
|
23535 |
|
23536 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23537 { |
|
23538 |
|
23539 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
23540 return return_type_symbol; |
|
23541 |
|
23542 } |
|
23543 |
|
23544 ERROR; |
|
23545 } |
|
23546 |
|
23547 }/*function_lword_to_usint*/ |
|
23548 break; |
|
23549 |
|
23550 /**** |
|
23551 *LWORD_TO_UINT |
|
23552 */ |
|
23553 case function_lword_to_uint : |
|
23554 { |
|
23555 symbol_c *last_type_symbol = NULL; |
|
23556 |
|
23557 { |
|
23558 symbol_c *IN_type_symbol = param_data_type; |
|
23559 last_type_symbol = param_data_type; |
|
23560 |
|
23561 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23562 { |
|
23563 |
|
23564 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
23565 return return_type_symbol; |
|
23566 |
|
23567 } |
|
23568 |
|
23569 ERROR; |
|
23570 } |
|
23571 |
|
23572 }/*function_lword_to_uint*/ |
|
23573 break; |
|
23574 |
|
23575 /**** |
|
23576 *LWORD_TO_UDINT |
|
23577 */ |
|
23578 case function_lword_to_udint : |
|
23579 { |
|
23580 symbol_c *last_type_symbol = NULL; |
|
23581 |
|
23582 { |
|
23583 symbol_c *IN_type_symbol = param_data_type; |
|
23584 last_type_symbol = param_data_type; |
|
23585 |
|
23586 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23587 { |
|
23588 |
|
23589 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
23590 return return_type_symbol; |
|
23591 |
|
23592 } |
|
23593 |
|
23594 ERROR; |
|
23595 } |
|
23596 |
|
23597 }/*function_lword_to_udint*/ |
|
23598 break; |
|
23599 |
|
23600 /**** |
|
23601 *LWORD_TO_ULINT |
|
23602 */ |
|
23603 case function_lword_to_ulint : |
|
23604 { |
|
23605 symbol_c *last_type_symbol = NULL; |
|
23606 |
|
23607 { |
|
23608 symbol_c *IN_type_symbol = param_data_type; |
|
23609 last_type_symbol = param_data_type; |
|
23610 |
|
23611 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23612 { |
|
23613 |
|
23614 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
23615 return return_type_symbol; |
|
23616 |
|
23617 } |
|
23618 |
|
23619 ERROR; |
|
23620 } |
|
23621 |
|
23622 }/*function_lword_to_ulint*/ |
|
23623 break; |
|
23624 |
|
23625 /**** |
|
23626 *LWORD_TO_REAL |
|
23627 */ |
|
23628 case function_lword_to_real : |
|
23629 { |
|
23630 symbol_c *last_type_symbol = NULL; |
|
23631 |
|
23632 { |
|
23633 symbol_c *IN_type_symbol = param_data_type; |
|
23634 last_type_symbol = param_data_type; |
|
23635 |
|
23636 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23637 { |
|
23638 |
|
23639 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name; |
|
23640 return return_type_symbol; |
|
23641 |
|
23642 } |
|
23643 |
|
23644 ERROR; |
|
23645 } |
|
23646 |
|
23647 }/*function_lword_to_real*/ |
|
23648 break; |
|
23649 |
|
23650 /**** |
|
23651 *LWORD_TO_LREAL |
|
23652 */ |
|
23653 case function_lword_to_lreal : |
|
23654 { |
|
23655 symbol_c *last_type_symbol = NULL; |
|
23656 |
|
23657 { |
|
23658 symbol_c *IN_type_symbol = param_data_type; |
|
23659 last_type_symbol = param_data_type; |
|
23660 |
|
23661 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23662 { |
|
23663 |
|
23664 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name; |
|
23665 return return_type_symbol; |
|
23666 |
|
23667 } |
|
23668 |
|
23669 ERROR; |
|
23670 } |
|
23671 |
|
23672 }/*function_lword_to_lreal*/ |
|
23673 break; |
|
23674 |
|
23675 /**** |
|
23676 *LWORD_TO_TIME |
|
23677 */ |
|
23678 case function_lword_to_time : |
|
23679 { |
|
23680 symbol_c *last_type_symbol = NULL; |
|
23681 |
|
23682 { |
|
23683 symbol_c *IN_type_symbol = param_data_type; |
|
23684 last_type_symbol = param_data_type; |
|
23685 |
|
23686 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23687 { |
|
23688 |
|
23689 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name; |
|
23690 return return_type_symbol; |
|
23691 |
|
23692 } |
|
23693 |
|
23694 ERROR; |
|
23695 } |
|
23696 |
|
23697 }/*function_lword_to_time*/ |
|
23698 break; |
|
23699 |
|
23700 /**** |
|
23701 *LWORD_TO_DATE |
|
23702 */ |
|
23703 case function_lword_to_date : |
|
23704 { |
|
23705 symbol_c *last_type_symbol = NULL; |
|
23706 |
|
23707 { |
|
23708 symbol_c *IN_type_symbol = param_data_type; |
|
23709 last_type_symbol = param_data_type; |
|
23710 |
|
23711 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23712 { |
|
23713 |
|
23714 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name; |
|
23715 return return_type_symbol; |
|
23716 |
|
23717 } |
|
23718 |
|
23719 ERROR; |
|
23720 } |
|
23721 |
|
23722 }/*function_lword_to_date*/ |
|
23723 break; |
|
23724 |
|
23725 /**** |
|
23726 *LWORD_TO_TOD |
|
23727 */ |
|
23728 case function_lword_to_tod : |
|
23729 { |
|
23730 symbol_c *last_type_symbol = NULL; |
|
23731 |
|
23732 { |
|
23733 symbol_c *IN_type_symbol = param_data_type; |
|
23734 last_type_symbol = param_data_type; |
|
23735 |
|
23736 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23737 { |
|
23738 |
|
23739 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
23740 return return_type_symbol; |
|
23741 |
|
23742 } |
|
23743 |
|
23744 ERROR; |
|
23745 } |
|
23746 |
|
23747 }/*function_lword_to_tod*/ |
|
23748 break; |
|
23749 |
|
23750 /**** |
|
23751 *LWORD_TO_DT |
|
23752 */ |
|
23753 case function_lword_to_dt : |
|
23754 { |
|
23755 symbol_c *last_type_symbol = NULL; |
|
23756 |
|
23757 { |
|
23758 symbol_c *IN_type_symbol = param_data_type; |
|
23759 last_type_symbol = param_data_type; |
|
23760 |
|
23761 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23762 { |
|
23763 |
|
23764 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name; |
|
23765 return return_type_symbol; |
|
23766 |
|
23767 } |
|
23768 |
|
23769 ERROR; |
|
23770 } |
|
23771 |
|
23772 }/*function_lword_to_dt*/ |
|
23773 break; |
|
23774 |
|
23775 /**** |
|
23776 *LWORD_TO_STRING |
|
23777 */ |
|
23778 case function_lword_to_string : |
|
23779 { |
|
23780 symbol_c *last_type_symbol = NULL; |
|
23781 |
|
23782 { |
|
23783 symbol_c *IN_type_symbol = param_data_type; |
|
23784 last_type_symbol = param_data_type; |
|
23785 |
|
23786 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23787 { |
|
23788 |
|
23789 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name; |
|
23790 return return_type_symbol; |
|
23791 |
|
23792 } |
|
23793 |
|
23794 ERROR; |
|
23795 } |
|
23796 |
|
23797 }/*function_lword_to_string*/ |
|
23798 break; |
|
23799 |
|
23800 /**** |
|
23801 *LWORD_TO_BYTE |
|
23802 */ |
|
23803 case function_lword_to_byte : |
|
23804 { |
|
23805 symbol_c *last_type_symbol = NULL; |
|
23806 |
|
23807 { |
|
23808 symbol_c *IN_type_symbol = param_data_type; |
|
23809 last_type_symbol = param_data_type; |
|
23810 |
|
23811 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23812 { |
|
23813 |
|
23814 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name; |
|
23815 return return_type_symbol; |
|
23816 |
|
23817 } |
|
23818 |
|
23819 ERROR; |
|
23820 } |
|
23821 |
|
23822 }/*function_lword_to_byte*/ |
|
23823 break; |
|
23824 |
|
23825 /**** |
|
23826 *LWORD_TO_WORD |
|
23827 */ |
|
23828 case function_lword_to_word : |
|
23829 { |
|
23830 symbol_c *last_type_symbol = NULL; |
|
23831 |
|
23832 { |
|
23833 symbol_c *IN_type_symbol = param_data_type; |
|
23834 last_type_symbol = param_data_type; |
|
23835 |
|
23836 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23837 { |
|
23838 |
|
23839 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name; |
|
23840 return return_type_symbol; |
|
23841 |
|
23842 } |
|
23843 |
|
23844 ERROR; |
|
23845 } |
|
23846 |
|
23847 }/*function_lword_to_word*/ |
|
23848 break; |
|
23849 |
|
23850 /**** |
|
23851 *LWORD_TO_DWORD |
|
23852 */ |
|
23853 case function_lword_to_dword : |
|
23854 { |
|
23855 symbol_c *last_type_symbol = NULL; |
|
23856 |
|
23857 { |
|
23858 symbol_c *IN_type_symbol = param_data_type; |
|
23859 last_type_symbol = param_data_type; |
|
23860 |
|
23861 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23862 { |
|
23863 |
|
23864 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name; |
|
23865 return return_type_symbol; |
|
23866 |
|
23867 } |
|
23868 |
|
23869 ERROR; |
|
23870 } |
|
23871 |
|
23872 }/*function_lword_to_dword*/ |
|
23873 break; |
|
23874 |
|
23875 /**** |
|
23876 *TRUNC |
|
23877 */ |
|
23878 case function_trunc : |
|
23879 { |
|
23880 symbol_c *last_type_symbol = NULL; |
|
23881 |
|
23882 { |
|
23883 symbol_c *IN_type_symbol = param_data_type; |
|
23884 last_type_symbol = param_data_type; |
|
23885 |
|
23886 if(search_expression_type->is_real_type(IN_type_symbol)) |
|
23887 { |
|
23888 |
|
23889 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
|
23890 return return_type_symbol; |
|
23891 |
|
23892 } |
|
23893 |
|
23894 ERROR; |
|
23895 } |
|
23896 |
|
23897 }/*function_trunc*/ |
|
23898 break; |
|
23899 |
|
23900 /**** |
|
23901 *BCD_TO_USINT |
|
23902 */ |
|
23903 case function_bcd_to_usint : |
|
23904 { |
|
23905 symbol_c *last_type_symbol = NULL; |
|
23906 |
|
23907 { |
|
23908 symbol_c *IN_type_symbol = param_data_type; |
|
23909 last_type_symbol = param_data_type; |
|
23910 |
|
23911 if (typeid(*last_type_symbol) == typeid(byte_type_name_c)) |
|
23912 { |
|
23913 |
|
23914 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name; |
|
23915 return return_type_symbol; |
|
23916 |
|
23917 } |
|
23918 |
|
23919 ERROR; |
|
23920 } |
|
23921 |
|
23922 }/*function_bcd_to_usint*/ |
|
23923 break; |
|
23924 |
|
23925 /**** |
|
23926 *BCD_TO_UINT |
|
23927 */ |
|
23928 case function_bcd_to_uint : |
|
23929 { |
|
23930 symbol_c *last_type_symbol = NULL; |
|
23931 |
|
23932 { |
|
23933 symbol_c *IN_type_symbol = param_data_type; |
|
23934 last_type_symbol = param_data_type; |
|
23935 |
|
23936 if (typeid(*last_type_symbol) == typeid(word_type_name_c)) |
|
23937 { |
|
23938 |
|
23939 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name; |
|
23940 return return_type_symbol; |
|
23941 |
|
23942 } |
|
23943 |
|
23944 ERROR; |
|
23945 } |
|
23946 |
|
23947 }/*function_bcd_to_uint*/ |
|
23948 break; |
|
23949 |
|
23950 /**** |
|
23951 *BCD_TO_UDINT |
|
23952 */ |
|
23953 case function_bcd_to_udint : |
|
23954 { |
|
23955 symbol_c *last_type_symbol = NULL; |
|
23956 |
|
23957 { |
|
23958 symbol_c *IN_type_symbol = param_data_type; |
|
23959 last_type_symbol = param_data_type; |
|
23960 |
|
23961 if (typeid(*last_type_symbol) == typeid(dword_type_name_c)) |
|
23962 { |
|
23963 |
|
23964 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name; |
|
23965 return return_type_symbol; |
|
23966 |
|
23967 } |
|
23968 |
|
23969 ERROR; |
|
23970 } |
|
23971 |
|
23972 }/*function_bcd_to_udint*/ |
|
23973 break; |
|
23974 |
|
23975 /**** |
|
23976 *BCD_TO_ULINT |
|
23977 */ |
|
23978 case function_bcd_to_ulint : |
|
23979 { |
|
23980 symbol_c *last_type_symbol = NULL; |
|
23981 |
|
23982 { |
|
23983 symbol_c *IN_type_symbol = param_data_type; |
|
23984 last_type_symbol = param_data_type; |
|
23985 |
|
23986 if (typeid(*last_type_symbol) == typeid(lword_type_name_c)) |
|
23987 { |
|
23988 |
|
23989 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name; |
|
23990 return return_type_symbol; |
|
23991 |
|
23992 } |
|
23993 |
|
23994 ERROR; |
|
23995 } |
|
23996 |
|
23997 }/*function_bcd_to_ulint*/ |
|
23998 break; |
|
23999 |
|
24000 /**** |
|
24001 *USINT_TO_BCD |
|
24002 */ |
|
24003 case function_usint_to_bcd : |
|
24004 { |
|
24005 symbol_c *last_type_symbol = NULL; |
|
24006 |
|
24007 { |
|
24008 symbol_c *IN_type_symbol = param_data_type; |
|
24009 last_type_symbol = param_data_type; |
|
24010 |
|
24011 if (typeid(*last_type_symbol) == typeid(usint_type_name_c)) |
|
24012 { |
|
24013 |
|
24014 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
|
24015 return return_type_symbol; |
|
24016 |
|
24017 } |
|
24018 |
|
24019 ERROR; |
|
24020 } |
|
24021 |
|
24022 }/*function_usint_to_bcd*/ |
|
24023 break; |
|
24024 |
|
24025 /**** |
|
24026 *UINT_TO_BCD |
|
24027 */ |
|
24028 case function_uint_to_bcd : |
|
24029 { |
|
24030 symbol_c *last_type_symbol = NULL; |
|
24031 |
|
24032 { |
|
24033 symbol_c *IN_type_symbol = param_data_type; |
|
24034 last_type_symbol = param_data_type; |
|
24035 |
|
24036 if (typeid(*last_type_symbol) == typeid(uint_type_name_c)) |
|
24037 { |
|
24038 |
|
24039 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
|
24040 return return_type_symbol; |
|
24041 |
|
24042 } |
|
24043 |
|
24044 ERROR; |
|
24045 } |
|
24046 |
|
24047 }/*function_uint_to_bcd*/ |
|
24048 break; |
|
24049 |
|
24050 /**** |
|
24051 *UDINT_TO_BCD |
|
24052 */ |
|
24053 case function_udint_to_bcd : |
|
24054 { |
|
24055 symbol_c *last_type_symbol = NULL; |
|
24056 |
|
24057 { |
|
24058 symbol_c *IN_type_symbol = param_data_type; |
|
24059 last_type_symbol = param_data_type; |
|
24060 |
|
24061 if (typeid(*last_type_symbol) == typeid(udint_type_name_c)) |
|
24062 { |
|
24063 |
|
24064 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
|
24065 return return_type_symbol; |
|
24066 |
|
24067 } |
|
24068 |
|
24069 ERROR; |
|
24070 } |
|
24071 |
|
24072 }/*function_udint_to_bcd*/ |
|
24073 break; |
|
24074 |
|
24075 /**** |
|
24076 *ULINT_TO_BCD |
|
24077 */ |
|
24078 case function_ulint_to_bcd : |
|
24079 { |
|
24080 symbol_c *last_type_symbol = NULL; |
|
24081 |
|
24082 { |
|
24083 symbol_c *IN_type_symbol = param_data_type; |
|
24084 last_type_symbol = param_data_type; |
|
24085 |
|
24086 if (typeid(*last_type_symbol) == typeid(ulint_type_name_c)) |
|
24087 { |
|
24088 |
|
24089 symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name; |
|
24090 return return_type_symbol; |
|
24091 |
|
24092 } |
|
24093 |
|
24094 ERROR; |
|
24095 } |
|
24096 |
|
24097 }/*function_ulint_to_bcd*/ |
|
24098 break; |
|
24099 |
|
24100 /**** |
|
24101 *DATE_AND_TIME_TO_TIME_OF_DAY |
|
24102 */ |
|
24103 case function_date_and_time_to_time_of_day : |
|
24104 { |
|
24105 symbol_c *last_type_symbol = NULL; |
|
24106 |
|
24107 { |
|
24108 symbol_c *IN_type_symbol = param_data_type; |
|
24109 last_type_symbol = param_data_type; |
|
24110 |
|
24111 if (typeid(*last_type_symbol) == typeid(dt_type_name_c)) |
|
24112 { |
|
24113 |
|
24114 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name; |
|
24115 return return_type_symbol; |
|
24116 |
|
24117 } |
|
24118 |
|
24119 ERROR; |
|
24120 } |
|
24121 |
|
24122 }/*function_date_and_time_to_time_of_day*/ |
23894 }/*function_date_and_time_to_time_of_day*/ |
24123 break; |
23895 break; |
24124 |
23896 |
24125 /**** |
23897 /**** |
24126 *DATE_AND_TIME_TO_DATE |
23898 *DATE_AND_TIME_TO_DATE |