fixed the for tag.

This commit is contained in:
barant committed 2025-01-09 07:49:11 -08:00
1 parent ebb6dc4ca9
commit 83321a2f43
3 files changed
+15 -11

No files matched your search

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