diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2018-07-13 17:02:30 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2018-07-20 12:35:00 -0700 |
commit | af89318b1d3bef15e92e591887c9d65b10be54ce (patch) | |
tree | d3ccb07da91bb56197607f5319100e64f7493211 /src/mbgl/style/expression/dsl.cpp | |
parent | a3d988ab8520ea12272bb80a746a2d91cbc332f5 (diff) | |
download | qtlocation-mapboxgl-af89318b1d3bef15e92e591887c9d65b10be54ce.tar.gz |
[core] Convert token strings to expressions
Diffstat (limited to 'src/mbgl/style/expression/dsl.cpp')
-rw-r--r-- | src/mbgl/style/expression/dsl.cpp | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/src/mbgl/style/expression/dsl.cpp b/src/mbgl/style/expression/dsl.cpp index 5532e0a520..a851d82e16 100644 --- a/src/mbgl/style/expression/dsl.cpp +++ b/src/mbgl/style/expression/dsl.cpp @@ -7,26 +7,22 @@ #include <mbgl/style/expression/step.hpp> #include <mbgl/style/expression/interpolate.hpp> #include <mbgl/style/expression/compound_expression.hpp> -#include <mbgl/util/ignore.hpp> namespace mbgl { namespace style { namespace expression { namespace dsl { -template <class... Args> -static std::vector<std::unique_ptr<Expression>> vec(Args... args) { - std::vector<std::unique_ptr<Expression>> result; - util::ignore({ (result.push_back(std::move(args)), 0)... }); - return result; +static std::unique_ptr<Expression> compound(const char* op, std::vector<std::unique_ptr<Expression>> args) { + ParsingContext ctx; + ParseResult result = createCompoundExpression(op, std::move(args), ctx); + assert(result); + return std::move(*result); } template <class... Args> static std::unique_ptr<Expression> compound(const char* op, Args... args) { - ParsingContext ctx; - ParseResult result = createCompoundExpression(op, vec(std::move(args)...), ctx); - assert(result); - return std::move(*result); + return compound(op, vec(std::move(args)...)); } std::unique_ptr<Expression> error(std::string message) { @@ -69,14 +65,14 @@ std::unique_ptr<Expression> boolean(std::unique_ptr<Expression> value) { return std::make_unique<Assertion>(type::Boolean, vec(std::move(value))); } -std::unique_ptr<Expression> toColor(const char* value) { - return toColor(literal(value)); -} - std::unique_ptr<Expression> toColor(std::unique_ptr<Expression> value) { return std::make_unique<Coercion>(type::Color, vec(std::move(value))); } +std::unique_ptr<Expression> toString(std::unique_ptr<Expression> value) { + return compound("to-string", std::move(value)); +} + std::unique_ptr<Expression> get(const char* value) { return get(literal(value)); } @@ -177,6 +173,10 @@ std::unique_ptr<Expression> interpolate(Interpolator interpolator, return std::move(*result); } +std::unique_ptr<Expression> concat(std::vector<std::unique_ptr<Expression>> inputs) { + return compound("concat", std::move(inputs)); +} + } // namespace dsl } // namespace expression } // namespace style |