Compare commits

...

2 commits
v0.6.2 ... main

Author SHA1 Message Date
Vaxry
557241780c
version: bump to 0.6.3
Some checks failed
Build & Test / nix (hyprlang) (push) Has been cancelled
Build & Test / nix (hyprlang-with-tests) (push) Has been cancelled
Build & Test (Arch) / gcc build / ASan tests (push) Has been cancelled
Build & Test (Arch) / gcc build / UBSan tests (push) Has been cancelled
Build & Test (Arch) / gcc build / MSan tests (push) Has been cancelled
Build & Test (Arch) / clang build / gcc test (push) Has been cancelled
Build & Test (Arch) / Deploy docs (push) Has been cancelled
2025-05-07 23:03:32 +01:00
Vaxry
a59e86a3da
parser: change expression syntax to avoid bash clashes
changes from $() to {{}} to avoid clashing with bash syntax
2025-05-07 23:03:03 +01:00
4 changed files with 8 additions and 8 deletions

View file

@ -1 +1 @@
0.6.2 0.6.3

View file

@ -644,9 +644,9 @@ CParseResult CConfig::parseLine(std::string line, bool dynamic) {
// parse expressions $(somevar + 2) // parse expressions $(somevar + 2)
// We only support single expressions for now // We only support single expressions for now
while (RHS.contains("$(")) { while (RHS.contains("{{")) {
const auto BEGIN_EXPR = RHS.find("$("); const auto BEGIN_EXPR = RHS.find("{{");
const auto END_EXPR = RHS.find(')', BEGIN_EXPR + 2); const auto END_EXPR = RHS.find("}}", BEGIN_EXPR + 2);
if (END_EXPR != std::string::npos) { if (END_EXPR != std::string::npos) {
// try to parse the expression // try to parse the expression
const auto RESULT = impl->parseExpression(RHS.substr(BEGIN_EXPR + 2, END_EXPR - BEGIN_EXPR - 2)); const auto RESULT = impl->parseExpression(RHS.substr(BEGIN_EXPR + 2, END_EXPR - BEGIN_EXPR - 2));
@ -655,7 +655,7 @@ CParseResult CConfig::parseLine(std::string line, bool dynamic) {
return result; return result;
} }
RHS = RHS.substr(0, BEGIN_EXPR) + std::format("{}", RESULT.value()) + RHS.substr(END_EXPR + 1); RHS = RHS.substr(0, BEGIN_EXPR) + std::format("{}", RESULT.value()) + RHS.substr(END_EXPR + 2);
} else } else
break; break;
} }

View file

@ -14,8 +14,8 @@ $MY_VAR = 1337
$MY_VAR_2 = $MY_VAR $MY_VAR_2 = $MY_VAR
testVar = $MY_VAR$MY_VAR_2 testVar = $MY_VAR$MY_VAR_2
$EXPR_VAR = $(MY_VAR + 2) $EXPR_VAR = {{MY_VAR + 2}}
testExpr = $(EXPR_VAR - 4) testExpr = {{EXPR_VAR - 4}}
testEnv = $SHELL testEnv = $SHELL

View file

@ -249,7 +249,7 @@ int main(int argc, char** argv, char** envp) {
EXPECT(std::any_cast<const char*>(config.getConfigValue("testStringRecursive")), std::string{"dbc"}); EXPECT(std::any_cast<const char*>(config.getConfigValue("testStringRecursive")), std::string{"dbc"});
// test dynamic exprs // test dynamic exprs
EXPECT(config.parseDynamic("testExpr = $(EXPR_VAR * 2)").error, false); EXPECT(config.parseDynamic("testExpr = {{EXPR_VAR * 2}}").error, false);
EXPECT(std::any_cast<int64_t>(config.getConfigValue("testExpr")), 1339L * 2); EXPECT(std::any_cast<int64_t>(config.getConfigValue("testExpr")), 1339L * 2);
// test env variables // test env variables