Skip to content

Commit 96af755

Browse files
committed
Optimisations.
1 parent 4930604 commit 96af755

File tree

1 file changed

+57
-52
lines changed

1 file changed

+57
-52
lines changed

src/Parser.cpp

Lines changed: 57 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -162,47 +162,54 @@ namespace FPL {
162162
if (CheckerOperateur("-").has_value()) {
163163
if (CheckerOperateur(">").has_value()) {
164164
auto VarValue = CheckerValue();
165+
166+
if (VarValue->StatementType.mType == STRING) {
167+
std::replace(VarValue->StatementName.begin(), VarValue->StatementName.end(), '"', ' ');
168+
}
169+
165170
if (VarValue.has_value()) {
166-
if (CheckerOperateur(";").has_value()) {
167-
if (VarValue->StatementType.mType == STRING) {
168-
std::replace(VarValue->StatementName.begin(), VarValue->StatementName.end(), '"', ' ');
169-
}
170-
if (VarType->mType == INT) {
171-
int v;
172-
std::cin >> v;
173-
VariableDefinition variable;
174-
variable.VariableName = VarName->mText;
175-
variable.VariableType = Type(VarType->mName, VarType->mType);
176-
variable.VariableValue = std::to_string(v);
177-
178-
mVariables[variable.VariableName] = variable;
179-
return true;
180-
} else if (VarType->mType == DOUBLE) {
181-
double v;
182-
std::cin >> v;
183-
VariableDefinition variable;
184-
variable.VariableName = VarName->mText;
185-
variable.VariableType = Type(VarType->mName, VarType->mType);
186-
variable.VariableValue = std::to_string(v);
171+
std::cout << VarValue->StatementName << std::endl;
172+
}
173+
if (CheckerOperateur(";").has_value()) {
174+
if (VarType->mType == INT) {
175+
int v;
176+
std::cin >> v;
177+
VariableDefinition variable;
178+
variable.VariableName = VarName->mText;
179+
variable.VariableType = Type(VarType->mName, VarType->mType);
180+
variable.IsGlobal = false;
181+
variable.InFonction = false;
182+
variable.VariableValue = std::to_string(v);
187183

188-
mVariables[variable.VariableName] = variable;
189-
return true;
190-
} else if (VarType->mType == STRING) {
184+
mVariables[variable.VariableName] = variable;
185+
return true;
186+
} else if (VarType->mType == DOUBLE) {
187+
double v;
188+
std::cin >> v;
189+
VariableDefinition variable;
190+
variable.VariableName = VarName->mText;
191+
variable.VariableType = Type(VarType->mName, VarType->mType);
192+
variable.IsGlobal = false;
193+
variable.InFonction = false;
194+
variable.VariableValue = std::to_string(v);
191195

192-
std::string v;
193-
std::cin >> v;
194-
VariableDefinition variable;
195-
variable.VariableName = VarName->mText;
196-
variable.VariableType = Type(VarType->mName, VarType->mType);
197-
variable.VariableValue = v;
196+
mVariables[variable.VariableName] = variable;
197+
return true;
198+
} else if (VarType->mType == STRING) {
198199

199-
mVariables[variable.VariableName] = variable;
200-
return true;
201-
} else {
202-
std::cerr << "Le type est inexistant en F.P.L." << std::endl;
203-
}
200+
std::string v;
201+
std::cin >> v;
202+
VariableDefinition variable;
203+
variable.VariableName = VarName->mText;
204+
variable.VariableType = Type(VarType->mName, VarType->mType);
205+
variable.IsGlobal = false;
206+
variable.InFonction = false;
207+
variable.VariableValue = v;
208+
209+
mVariables[variable.VariableName] = variable;
210+
return true;
204211
} else {
205-
std::cerr << "Merci de signifier la fin de la déclaration de la variable avec ';'." << std::endl;
212+
std::cerr << "Le type est inexistant en F.P.L." << std::endl;
206213
}
207214
} else {
208215
std::cerr << "Merci de signifier la fin de la déclaration de la variable avec ';'." << std::endl;
@@ -218,6 +225,8 @@ namespace FPL {
218225
VariableDefinition variable;
219226
variable.VariableName = VarName->mText;
220227
variable.VariableType = Type(VarType->mName, VarType->mType);
228+
variable.IsGlobal = false;
229+
variable.InFonction = false;
221230
variable.VariableValue = std::to_string(v);
222231

223232
mVariables[variable.VariableName] = variable;
@@ -228,6 +237,8 @@ namespace FPL {
228237
VariableDefinition variable;
229238
variable.VariableName = VarName->mText;
230239
variable.VariableType = Type(VarType->mName, VarType->mType);
240+
variable.IsGlobal = false;
241+
variable.InFonction = false;
231242
variable.VariableValue = std::to_string(v);
232243

233244
mVariables[variable.VariableName] = variable;
@@ -238,6 +249,8 @@ namespace FPL {
238249
VariableDefinition variable;
239250
variable.VariableName = VarName->mText;
240251
variable.VariableType = Type(VarType->mName, VarType->mType);
252+
variable.IsGlobal = false;
253+
variable.InFonction = false;
241254
variable.VariableValue = v;
242255

243256
mVariables[variable.VariableName] = variable;
@@ -257,29 +270,21 @@ namespace FPL {
257270
if (CheckerOperateur(">").has_value()) {
258271
auto VarValue = CheckerValue();
259272
if (VarValue.has_value()) {
260-
if (VarType->mType == AUTO) {
261-
if (CheckerOperateur(";").has_value()) {
262-
VariableDefinition variable;
263-
variable.VariableName = VarName->mText;
264-
variable.VariableType = Type(VarValue->StatementType.mName, VarValue->StatementType.mType);
265-
variable.VariableValue = VarValue->StatementName;
266-
267-
mVariables[variable.VariableName] = variable;
268-
269-
return true;
270-
} else {
271-
std::cerr << "Merci de signifier la fin de la declaration de la variable avec ';'." << std::endl;
272-
}
273-
}
274-
275273
if (VarValue->StatementType.mType == VarType->mType) {
276274
if (CheckerOperateur(";").has_value()) {
277275
VariableDefinition variable;
278276
variable.VariableName = VarName->mText;
279-
variable.VariableType = Type(VarType->mName, VarType->mType);
277+
if (VarType->mType == AUTO) {
278+
variable.VariableType = Type(VarValue->StatementType.mName, VarValue->StatementType.mType);
279+
} else {
280+
variable.VariableType = Type(VarType->mName, VarType->mType);
281+
}
282+
variable.IsGlobal = false;
283+
variable.InFonction = false;
280284
variable.VariableValue = VarValue->StatementName;
281285

282286
mVariables[variable.VariableName] = variable;
287+
283288
return true;
284289
} else {
285290
std::cerr << "Merci de signifier la fin de la declaration de la variable avec ';'." << std::endl;

0 commit comments

Comments
 (0)