migrating getvariable and setvarable to Tag. Needs alot of work.

This commit is contained in:
barant committed 2025-01-06 14:57:48 -08:00
1 parent 229394310d
commit 2549220914
6 files changed
+145 -114

No files matched your search

+35 -34
View File
@@ -22,40 +22,41 @@ namespace jet {
throw coreutils::Exception("Cannot use eval with expr.");
resolveKeyword("name");
storeVariable(keywords["name"]);
if(keywordDefined("expr")) {
if(!keywordDefined("scope") || (keywords["scope"] == "global"))
global.variables[keywords["name"]] = Operand(keywords["expr"], global, parent->variables, keywords).string;
else if(keywords["scope"] == "local")
local->variables[keywords["name"]] = Operand(keywords["expr"], global, parent->variables, keywords).string;
else if(keywords["scope"] == "parent")
local->parent->variables[keywords["name"]] = Operand(keywords["expr"], global, parent->variables, keywords).string;
} else if(hasContainer) {
processContainer(container);
if(evaluate) {
if(!keywordDefined("scope") || (keywords["scope"] == "global"))
global.variables[keywords["name"]] = out;
else if(keywords["scope"] == "local")
local->variables[keywords["name"]] = out;
else if(keywords["scope"] == "parent")
local->parent->variables[keywords["name"]] = out;
} else {
if(!keywordDefined("scope") || (keywords["scope"] == "global"))
global.variables[keywords["name"]] = container;
else if(keywords["scope"] == "local")
local->variables[keywords["name"]] = container;
else if(keywords["scope"] == "parent")
local->parent->variables[keywords["name"]] = container;
}
} else {
resolveKeyword("value");
if(!keywordDefined("scope") || (keywords["scope"] == "global"))
global.variables[keywords["name"]] = keywords["value"];
else if(keywords["scope"] == "local")
local->variables[keywords["name"]] = keywords["value"];
else if(keywords["scope"] == "parent")
local->parent->variables[keywords["name"]] = keywords["value"];
}
// if(keywordDefined("expr")) {
// if(!keywordDefined("scope") || (keywords["scope"] == "global"))
// global.variables[keywords["name"]] = Operand(keywords["expr"], global, parent->variables, keywords).string;
// else if(keywords["scope"] == "local")
// local->variables[keywords["name"]] = Operand(keywords["expr"], global, parent->variables, keywords).string;
// else if(keywords["scope"] == "parent")
// local->parent->variables[keywords["name"]] = Operand(keywords["expr"], global, parent->variables, keywords).string;
// } else if(hasContainer) {
// processContainer(container);
// if(evaluate) {
// if(!keywordDefined("scope") || (keywords["scope"] == "global"))
// global.variables[keywords["name"]] = out;
// else if(keywords["scope"] == "local")
// local->variables[keywords["name"]] = out;
// else if(keywords["scope"] == "parent")
// local->parent->variables[keywords["name"]] = out;
// } else {
// if(!keywordDefined("scope") || (keywords["scope"] == "global"))
// global.variables[keywords["name"]] = container;
// else if(keywords["scope"] == "local")
// local->variables[keywords["name"]] = container;
// else if(keywords["scope"] == "parent")
// local->parent->variables[keywords["name"]] = container;
// }
// } else {
// resolveKeyword("value");
// if(!keywordDefined("scope") || (keywords["scope"] == "global"))
// global.variables[keywords["name"]] = keywords["value"];
// else if(keywords["scope"] == "local")
// local->variables[keywords["name"]] = keywords["value"];
// else if(keywords["scope"] == "parent")
// local->parent->variables[keywords["name"]] = keywords["value"];
// }
}
}