Skip to content

Commit ab5523e

Browse files
committed
Functions Convertions + Opti.
1 parent a7caf1f commit ab5523e

File tree

2 files changed

+14
-17
lines changed

2 files changed

+14
-17
lines changed

src/Parser.cpp

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -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 {

src/Parser.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
#include "FonctionDefinition.h"
1818
#include "VariableDefinition.h"
1919

20+
#include "Utils/Converts.h"
21+
2022
namespace FPL {
2123

2224
class Parser {

0 commit comments

Comments
 (0)