diff --git a/Tag.h b/Tag.h index ab695a9..5213887 100644 --- a/Tag.h +++ b/Tag.h @@ -13,6 +13,8 @@ namespace jet { public: Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, coreutils::ZString splitTagName = ""); virtual ~Tag(); + + std::map variables; coreutils::ZString name; coreutils::ZString container; coreutils::ZString container2; @@ -20,7 +22,6 @@ namespace jet { protected: bool hasContainer; bool hasContainer2; - std::map variables; bool variableDefined(coreutils::ZString variable); void parseContainer(coreutils::ZString &in, coreutils::ZString container2 = NULL); void processContainer(coreutils::ZString &container, coreutils::ZString container2 = NULL); diff --git a/__set.cpp b/__set.cpp index ef814b6..7a1b143 100644 --- a/__set.cpp +++ b/__set.cpp @@ -24,25 +24,25 @@ namespace jet { if(!variableDefined("scope") || (variables["scope"] == "global")) global.variables[variables["name"]] = Operand(variables["expr"]).string; else if(variables["scope"] == "local") - variables[variables["name"]] = Operand(variables["expr"]).string; + parent->variables[variables["name"]] = Operand(variables["expr"]).string; } else if(hasContainer) { processContainer(container); if(evaluate) { if(!variableDefined("scope") || (variables["scope"] == "global")) global.variables[variables["name"]] = out; else if(variables["scope"] == "local") - variables[variables["name"]] = out; + parent->variables[variables["name"]] = out; } else { if(!variableDefined("scope") || (variables["scope"] == "global")) global.variables[variables["name"]] = container; else if(variables["scope"] == "local") - variables[variables["name"]] = container; + parent->variables[variables["name"]] = container; } } else { if(!variableDefined("scope") || (variables["scope"] == "global")) global.variables[variables["name"]] = variables["value"]; else if(variables["scope"] == "local") - variables[variables["name"]] = variables["value"]; + parent->variables[variables["name"]] = variables["value"]; } } diff --git a/tests/testscope.jet b/tests/testscope.jet index 2a7125a..c3064c8 100755 --- a/tests/testscope.jet +++ b/tests/testscope.jet @@ -1,4 +1,4 @@ -#!./jet-2.0 +#!../jet-2.0 #[testvar]