stage1_2/create_enumtype_conversion_functions.cc
changeset 771 d0c5c63a0cbf
parent 756 634f476cb60f
child 765 d15f13bff9c6
equal deleted inserted replaced
770:adc632c96c50 771:d0c5c63a0cbf
   194  FUNCTION <ENUM>_TO_STRING : STRING
   194  FUNCTION <ENUM>_TO_STRING : STRING
   195   VAR_INPUT
   195   VAR_INPUT
   196   IN: <ENUM>;
   196   IN: <ENUM>;
   197   END_VAR
   197   END_VAR
   198   IF IN = <ENUM.VALUE_1> THEN
   198   IF IN = <ENUM.VALUE_1> THEN
   199    <ENUM>_TO_STRING := '<ENUM.VALUE_1>';
   199    <ENUM>_TO_STRING := '<ENUM>#<ENUM.VALUE_1>';
   200    RETURN;
   200    RETURN;
   201   END_IF;
   201   END_IF;
   202   ...
   202   ...
   203   IF IN = <ENUM.VALUE_N> THEN
   203   IF IN = <ENUM.VALUE_N> THEN
   204    <ENUM>_TO_STRING := '<ENUM.VALUE_N>';
   204    <ENUM>_TO_STRING := '<ENUM>#<ENUM.VALUE_N>';
   205    RETURN;
   205    RETURN;
   206   END_IF;
   206   END_IF;
   207   ENO := FALSE;
   207   ENO := FALSE;
   208   END_FUNCTION
   208   END_FUNCTION
   209 
   209 
   217     text += "FUNCTION " + functionName + " : STRING";
   217     text += "FUNCTION " + functionName + " : STRING";
   218     text += "\nVAR_INPUT\nIN : " + enumerateName + ";\nEND_VAR\n";
   218     text += "\nVAR_INPUT\nIN : " + enumerateName + ";\nEND_VAR\n";
   219     for (itr = enumerateValues.begin(); itr != enumerateValues.end(); ++itr) {
   219     for (itr = enumerateValues.begin(); itr != enumerateValues.end(); ++itr) {
   220         std::string value = *itr;
   220         std::string value = *itr;
   221         text += "IF IN = " + value + " THEN\n";
   221         text += "IF IN = " + value + " THEN\n";
   222         text += " " + functionName + " := '" + value + "';\n";
   222         text += " " + functionName + " := '" + enumerateName + "#" + value + "';\n";
   223         text += " RETURN;\n";
   223         text += " RETURN;\n";
   224         text += "END_IF;\n";
   224         text += "END_IF;\n";
   225     }
   225     }
   226     text += "ENO := FALSE;\n";
   226     text += "ENO := FALSE;\n";
   227     text += "END_FUNCTION\n\n";
   227     text += "END_FUNCTION\n\n";