# HG changeset patch # User Manuele Conti <conti.ma@alice.it> # Date 1354468802 -3600 # Node ID d15f13bff9c6628ad60dd2f3d7ab329af4290e88 # Parent d699d54d181afad508995098a4eb92b928227fa9 Remove Ambiguous enumerate value in enum conversion functions. diff -r d699d54d181a -r d15f13bff9c6 stage1_2/create_enumtype_conversion_functions.cc --- a/stage1_2/create_enumtype_conversion_functions.cc Sun Dec 02 12:30:41 2012 +0100 +++ b/stage1_2/create_enumtype_conversion_functions.cc Sun Dec 02 18:20:02 2012 +0100 @@ -155,12 +155,12 @@ IN: STRING; END_VAR IF IN = '<ENUM.VALUE_1>' THEN - STRING_TO_<ENUM> := <ENUM.VALUE_1>; + STRING_TO_<ENUM> := <ENUM>#<ENUM.VALUE_1>; RETURN; END_IF; ... IF IN = '<ENUM.VALU_N>' THEN - STRING_TO_<ENUM> := <ENUM.VALUE_N>; + STRING_TO_<ENUM> := <ENUM>#<ENUM.VALUE_N>; RETURN; END_IF; ENO := FALSE; @@ -178,7 +178,7 @@ for (itr = enumerateValues.begin(); itr != enumerateValues.end(); ++itr) { std::string value = *itr; text += "IF IN = '" + value + "' THEN\n"; - text += " " + functionName + " := " + value + ";\n"; + text += " " + functionName + " := " + enumerateName + "#" + value + ";\n"; text += " RETURN;\n"; text += "END_IF;\n"; } @@ -195,12 +195,12 @@ VAR_INPUT IN: <ENUM>; END_VAR - IF IN = <ENUM.VALUE_1> THEN + IF IN = <ENUM>#<ENUM.VALUE_1> THEN <ENUM>_TO_STRING := '<ENUM>#<ENUM.VALUE_1>'; RETURN; END_IF; ... - IF IN = <ENUM.VALUE_N> THEN + IF IN = <ENUM>#<ENUM.VALUE_N> THEN <ENUM>_TO_STRING := '<ENUM>#<ENUM.VALUE_N>'; RETURN; END_IF; @@ -218,7 +218,7 @@ text += "\nVAR_INPUT\nIN : " + enumerateName + ";\nEND_VAR\n"; for (itr = enumerateValues.begin(); itr != enumerateValues.end(); ++itr) { std::string value = *itr; - text += "IF IN = " + value + " THEN\n"; + text += "IF IN = " + enumerateName + "#" + value + " THEN\n"; text += " " + functionName + " := '" + enumerateName + "#" + value + "';\n"; text += " RETURN;\n"; text += "END_IF;\n"; @@ -237,12 +237,12 @@ IN: <INTEGER>; END_VAR IF IN = 1 THEN - <INTEGER>_TO_<ENUM> := <ENUM.VALUE_1>; + <INTEGER>_TO_<ENUM> := <ENUM>#<ENUM.VALUE_1>; RETURN; END_IF; ... IF IN = N THEN - <INTEGER>_TO_<ENUM> := <ENUM.VALUE_N>; + <INTEGER>_TO_<ENUM> := <ENUM>#<ENUM.VALUE_N>; RETURN; END_IF; ENO := FALSE; @@ -266,7 +266,7 @@ std::stringstream out; out << count; text += "IF IN = " + out.str() + " THEN\n"; - text += " " + functionName + " := " + value + ";\n"; + text += " " + functionName + " := " + enumerateName + "#" + value + ";\n"; text += " RETURN;\n"; text += "END_IF;\n"; count++; @@ -284,12 +284,12 @@ VAR_INPUT IN: <INTEGER>; END_VAR - IF IN = <ENUM.VALUE_1> THEN + IF IN = <ENUM>#<ENUM.VALUE_1> THEN <ENUM>_TO_<INTEGER> := 1; RETURN; END_IF; ... - IF IN = <ENUM.VALUE_N> THEN + IF IN = <ENUM>#<ENUM.VALUE_N> THEN <ENUM>_TO_<INTEGER> := N; RETURN; END_IF; @@ -313,7 +313,7 @@ std::string value = *itr; std::stringstream out; out << count; - text += "IF IN = " + value + " THEN\n"; + text += "IF IN = " + enumerateName + "#" + value + " THEN\n"; text += " " + functionName + " := " + out.str() + ";\n"; text += " RETURN;\n"; text += "END_IF;\n";