Skip to content

Commit 357757e

Browse files
committed
Updated to save variables
1 parent 44d1b45 commit 357757e

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

src/Essentials/Parser.cpp

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ namespace FPL::Parser {
4444

4545
std::vector<Tokenizer::Token> FileCode_Tokens = FPL::Tokenizer::TokenBuilder::ParseToken(FPL::Instruction::FunctionUtils::ReturnStringVector(Paquet.PaquetContent));
4646

47-
auto data_paquet = executeContentCode(FileCode_Tokens, fonction, Paquet);
47+
auto data_paquet = executeContentCode(FileCode_Tokens, fonction, Paquet, data);
4848

4949
for (auto const& variables : data_paquet.Map_Variables) {
5050
auto it = std::find(data_paquet.Map_Variables.begin(), data_paquet.Map_Variables.end(), variables);
@@ -91,7 +91,7 @@ namespace FPL::Parser {
9191

9292
std::string Import_ContentCode((std::istreambuf_iterator<char>(file)), (std::istreambuf_iterator<char>()));
9393
std::vector<Tokenizer::Token> ImportFile_Tokens = FPL::Tokenizer::TokenBuilder::ParseToken(Import_ContentCode);
94-
auto data_ImportFile = executeContentCode(ImportFile_Tokens, fonction, std::nullopt);
94+
auto data_ImportFile = executeContentCode(ImportFile_Tokens, fonction, std::nullopt, data);
9595

9696
for (auto const& variables : data_ImportFile.Map_Variables) {
9797
auto it = std::find(data_ImportFile.Map_Variables.begin(), data_ImportFile.Map_Variables.end(), variables);
@@ -227,7 +227,7 @@ namespace FPL::Parser {
227227
forgotEndInstructionOperator(data);
228228
}
229229

230-
auto data_f = executeContentCode(FileCode_Tokens, fonction, std::nullopt);
230+
auto data_f = executeContentCode(FileCode_Tokens, fonction, std::nullopt, data);
231231

232232
for (auto const& variables : data_f.Map_Variables) {
233233
auto it = std::find(data_f.Map_Variables.begin(), data_f.Map_Variables.end(), variables);
@@ -674,7 +674,7 @@ namespace FPL::Parser {
674674
forgotEndInstructionOperator(data);
675675
}
676676

677-
auto data_f = executeContentCode(FileCode_Tokens, possibleFunction, std::nullopt);
677+
auto data_f = executeContentCode(FileCode_Tokens, possibleFunction, std::nullopt, data);
678678

679679
if (!data_f.HasReturnValue) {
680680
RETURN_noreturn(data);
@@ -836,9 +836,20 @@ namespace FPL::Parser {
836836
return false;
837837
}
838838

839-
Data::Data Parser::executeContentCode(std::vector<FPL::Tokenizer::Token>& Tokens, const std::optional<FPL::FonctionDef>& fonction, const std::optional<FPL::Paquet::Paquet>& paquet) {
839+
Data::Data Parser::executeContentCode(std::vector<FPL::Tokenizer::Token>& Tokens, const std::optional<FPL::FonctionDef>& fonction, const std::optional<FPL::Paquet::Paquet>& paquet, FPL::Data::Data& universalData) {
840840
Data::Data data(Tokens);
841841

842+
for (auto const& v : universalData.Map_Variables) {
843+
auto it = std::find(universalData.Map_Variables.begin(), universalData.Map_Variables.end(), v);
844+
if (it != universalData.Map_Variables.end()) {
845+
data.addVariableToMap(it->second.VariableName,
846+
it->second.VariableValue,
847+
it->second.VariableType,
848+
it->second.NeedDelete,
849+
it->second.IsGlobal);
850+
}
851+
}
852+
842853
while (data.current_token != data.end_token) {
843854
if (ManagerInstruction(data, fonction, paquet)) {
844855

src/Essentials/Parser.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ namespace FPL::Parser {
3333

3434

3535
private:
36-
static Data::Data executeContentCode(std::vector<FPL::Tokenizer::Token>& Tokens, const std::optional<FPL::FonctionDef>& fonction, const std::optional<FPL::Paquet::Paquet>& paquet);
36+
static Data::Data executeContentCode(std::vector<FPL::Tokenizer::Token>& Tokens, const std::optional<FPL::FonctionDef>& fonction, const std::optional<FPL::Paquet::Paquet>& paquet, FPL::Data::Data& universalData);
3737
static bool ManagerInstruction(FPL::Data::Data &data, std::optional<FPL::FonctionDef> fonction, const std::optional<FPL::Paquet::Paquet>& paquet);
3838

3939
static void PrintInstruction(FPL::Data::Data& data, std::optional<FPL::FonctionDef>& fonction);

0 commit comments

Comments
 (0)