diff options
Diffstat (limited to 'src/buildtool/build_engine/expression/evaluator.cpp')
-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}, |