diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2024-07-25 12:43:57 +0200 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2024-07-26 16:59:52 +0200 |
commit | 1bf8196856c631640659e0a70d900ed7950a5e30 (patch) | |
tree | 171288ed86de04357800485d332a71ce6f9c9a7b /src | |
parent | 806a141fd15f8598776a05b736eaf8d09fec5309 (diff) | |
download | justbuild-1bf8196856c631640659e0a70d900ed7950a5e30.tar.gz |
expression language: add quoting
Diffstat (limited to 'src')
-rw-r--r-- | src/buildtool/build_engine/expression/evaluator.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/buildtool/build_engine/expression/evaluator.cpp b/src/buildtool/build_engine/expression/evaluator.cpp index 2256a040..673b80b3 100644 --- a/src/buildtool/build_engine/expression/evaluator.cpp +++ b/src/buildtool/build_engine/expression/evaluator.cpp @@ -499,6 +499,15 @@ auto VarExpr(SubExprEvaluator&& eval, return result; } +auto QuoteExpr(SubExprEvaluator&& /*eval*/, + ExpressionPtr const& expr, + Configuration const& /*env*/) -> ExpressionPtr { + if (auto const literal = expr->At("$1")) { + return *literal; + } + return Expression::kNone; +} + auto IfExpr(SubExprEvaluator&& eval, ExpressionPtr const& expr, Configuration const& env) -> ExpressionPtr { @@ -1089,6 +1098,7 @@ auto AssertNonEmptyExpr(SubExprEvaluator&& eval, auto const kBuiltInFunctions = FunctionMap::MakePtr({{"var", VarExpr}, + {"'", QuoteExpr}, {"if", IfExpr}, {"cond", CondExpr}, {"case", CaseExpr}, |