work towards a clean compile on migrating set and get variables from Tag.

This commit is contained in:
barant committed 2025-01-08 10:27:30 -08:00
1 parent 2549220914
commit 5c27df59da
25 files changed
+178 -306

No files matched your search

+12 -17
View File
@@ -8,28 +8,23 @@ namespace jet {
double counter = 0.0f;
bool nameDefined = keywordDefined("name");
if(keywordDefined("start")) {
resolveKeyword("start");
counter = keywords["start"].asDouble();
counter = keywords[resolveKeyword("start")].asDouble();
keywords["start"].reset();
}
if(keywordDefined("end"))
resolveKeyword("end");
else
if(!keywordDefined("end"))
throw coreutils::Exception("for tag requires end keyword.");
if(keywordDefined("step"))
resolveKeyword("step");
else
if(!keywordDefined("step"))
throw coreutils::Exception("for tag requires step keyword.");
for(double ix = counter; ix <= variables["end"].asDouble(); ix += variables["step"].asDouble()) {
keywords["end"].reset();
keywords["step"].reset();
for(double ix = counter; ix <= variables[resolveKeyword("end")].asDouble(); ix += variables[resolveKeyword("step")].asDouble()) {
keywords[resolveKeyword("end")].reset();
keywords[resolveKeyword("step")].reset();
if(nameDefined) {
if(!keywordDefined("scope") || (keywords["scope"] == "global"))
global.variables[keywords["name"]] = ix;
else if(keywords["scope"] == "local")
this->local->variables[keywords["name"]] = ix;
else if(keywords["scope"] == "parent")
parent->local->variables[keywords["name"]] = ix;
if(!keywordDefined("scope") || (keywords[resolveKeyword("scope")] == "global"))
global.variables[keywords[resolveKeyword("name")]] = ix;
else if(keywords[resolveKeyword("scope")] == "local")
this->local->variables[keywords[resolveKeyword("name")]] = ix;
else if(keywords[resolveKeyword("scope")] == "parent")
parent->local->variables[keywords[resolveKeyword("name")]] = ix;
else
throw coreutils::Exception("scope value is not valid.");
}