From 1bf8196856c631640659e0a70d900ed7950a5e30 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Thu, 25 Jul 2024 12:43:57 +0200 Subject: expression language: add quoting --- src/buildtool/build_engine/expression/evaluator.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/buildtool/build_engine/expression/evaluator.cpp') 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}, -- cgit v1.2.3