@@ -976,28 +976,23 @@ namespace FPL {
976976 }
977977
978978 if (CheckerOperateur (" ;" ).has_value ()) {
979- if (NewType->mType == INT && var.VariableType .mType == STRING) {
980- try {
981- int v = std::stoi (var.VariableValue );
982- var.VariableValue = std::to_string (v);
983- var.VariableType = Type (" entier" , INT);
984- }
985- catch (std::invalid_argument const & ex) {
986- std::cout << " Ca ne peut pas devenir une valeur de type entier !" << " Erreur final : " << ex.what () << std::endl;
979+ if (NewType->mType == BOOL && var.VariableType .mType == STRING) {
980+ if (var.VariableValue == " vrai" || var.VariableValue == " faux" ) {
981+ var.VariableType = Type (" bool" , BOOL);
982+ return true ;
983+ } else {
984+ std::cerr << " La valeur de la variable ne peut pas etre de type booleen." << std::endl;
985+ exit (1 );
987986 }
987+ }
988+ else if (NewType->mType == INT && var.VariableType .mType == STRING) {
989+ stringToInt (var.VariableValue , " Ca ne peut pas devenir une valeur de type entier !" );
988990 return true ;
989991 } else if (NewType->mType == DOUBLE && var.VariableType .mType == STRING) {
990- try {
991- double v = std::stod (var.VariableValue );
992- var.VariableValue = std::to_string (v);
993- var.VariableType = Type (" decimal" , DOUBLE);
994- }
995- catch (std::invalid_argument const & ex) {
996- std::cout << " Ca ne peut pas devenir une valeur de type entier !" << " Erreur final : " << ex.what () << std::endl;
997- }
992+ stringToDouble (var.VariableValue , " Ca ne peut pas devenir une valeur de type entier !" );
998993 return true ;
999994 } else {
1000- std::cerr << " La valeur de la variable ne permet une conversion." << std::endl;
995+ std::cerr << " La valeur de la variable ne permet pas une conversion." << std::endl;
1001996 exit (1 );
1002997 }
1003998 } else {
0 commit comments