From 0de087f14d9c1e489a787570fae07beec7915304 Mon Sep 17 00:00:00 2001 From: Brad Arant Date: Thu, 7 Nov 2024 10:44:20 -0800 Subject: [PATCH 1/2] Fixed ability to not have to enclose jet tag. --- Tag.cpp | 2 +- Tag.h | 3 ++- tests/testvar.jet | 7 ++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Tag.cpp b/Tag.cpp index dcc2100..5bcf22b 100644 --- a/Tag.cpp +++ b/Tag.cpp @@ -31,7 +31,7 @@ namespace jet { Tag::Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, coreutils::ZString splitTagName) : ZString(in), parentOut(parentOut), global(global), parent(parent) { this->splitTagName = splitTagName; - if(in.ifNext("<")) { + if(parent && in.ifNext("<")) { name = in.getTokenInclude("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_!"); if(in.startsWith(" ") || in.startsWith("/") || in.startsWith(">")) { bool finished = false; diff --git a/Tag.h b/Tag.h index b95bf2e..a35d1c7 100644 --- a/Tag.h +++ b/Tag.h @@ -11,7 +11,7 @@ namespace jet { class Tag : public coreutils::ZString { public: - Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, coreutils::ZString splitTagName = ""); + Tag(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent = NULL, coreutils::ZString splitTagName = ""); virtual ~Tag(); std::map variables; @@ -40,6 +40,7 @@ namespace jet { bool cleanWhitespace = false; private: + bool containerOnly = false; coreutils::ZString splitTagName; int skipBlankLine(coreutils::ZString in); diff --git a/tests/testvar.jet b/tests/testvar.jet index 39d4ecc..93445ab 100755 --- a/tests/testvar.jet +++ b/tests/testvar.jet @@ -1,12 +1,13 @@ #!../jet-2.0 - + + -$[$test] + $[$[ix]var$[ix]] $[var$[ix]] $[var$[ix]var] @@ -14,4 +15,4 @@ $[var$[i$[letterx]]var] $[letterx;TOHEX] $[var$[i$[letterx]]$[ix]] $[var$[i$[letterx]]$[i$[letterx]]] - + From 31e309934c97abaa0d81bffe11adb003c70f5dbf Mon Sep 17 00:00:00 2001 From: Brad Arant Date: Thu, 7 Nov 2024 16:47:11 -0800 Subject: [PATCH 2/2] Setup base for conversion modifiers to be written. --- Global.cpp | 12 ++++++++++-- Global.h | 2 ++ tests/testvar.jet | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Global.cpp b/Global.cpp index 46f4a98..c580ae2 100644 --- a/Global.cpp +++ b/Global.cpp @@ -37,6 +37,13 @@ namespace jet { sessions.erase(sessionId); } + coreutils::MString& Global::processModifier(coreutils::MString &value, coreutils::MString &modifier) { + if(modifier.getLength() == 0) + return value; + lastConverted = modifier; + return lastConverted; + } + coreutils::ZString Global::getVariable(coreutils::ZString &variable, std::map &lvariables) { if(variable.ifNext("$[")) { coreutils::MString name; @@ -54,8 +61,9 @@ namespace jet { } else { renderVariableName(variable, name, modifier, lvariables); name.split("."); - if(name.getList().size() == 1) - return variables[name[0]]; + if(name.getList().size() == 1) { + return processModifier(variables[name[0]], modifier); + } return getSessionVariable(name); } throw coreutils::Exception("expected variable name or type designator."); diff --git a/Global.h b/Global.h index dcb147f..9a055e3 100644 --- a/Global.h +++ b/Global.h @@ -18,6 +18,7 @@ namespace jet { bool sessionExists(coreutils::MString sessionId); void addSession(coreutils::MString sessionId, __mysql *mysql); void removeSession(coreutils::MString sessionId); + coreutils::MString& processModifier(coreutils::MString &value, coreutils::MString &modifier); coreutils::ZString getVariable(coreutils::ZString &variable, std::map &lvariables); void renderVariableName(coreutils::ZString &variable, coreutils::MString &name, coreutils::MString &modifier, std::map &lvariables); __mysql * getSession(coreutils::MString sessionId); @@ -29,6 +30,7 @@ namespace jet { std::map sessions; std::map headers; std::map tags; + coreutils::MString lastConverted; }; diff --git a/tests/testvar.jet b/tests/testvar.jet index 93445ab..568cc11 100755 --- a/tests/testvar.jet +++ b/tests/testvar.jet @@ -8,7 +8,7 @@ -$[$[ix]var$[ix]] +$[$[ix]var$[ix];binary] $[var$[ix]] $[var$[ix]var] $[var$[i$[letterx]]var]