summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/build_engine/expression/evaluator.cpp10
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},