Skip to content
This repository was archived by the owner on Aug 8, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions cmake/core-files.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -457,9 +457,9 @@ set(MBGL_CORE_FILES
include/mbgl/style/expression/coercion.hpp
include/mbgl/style/expression/collator.hpp
include/mbgl/style/expression/collator_expression.hpp
include/mbgl/style/expression/comparison.hpp
include/mbgl/style/expression/compound_expression.hpp
include/mbgl/style/expression/dsl.hpp
include/mbgl/style/expression/equals.hpp
include/mbgl/style/expression/error.hpp
include/mbgl/style/expression/expression.hpp
include/mbgl/style/expression/find_zoom_curve.hpp
Expand All @@ -485,9 +485,9 @@ set(MBGL_CORE_FILES
src/mbgl/style/expression/coalesce.cpp
src/mbgl/style/expression/coercion.cpp
src/mbgl/style/expression/collator_expression.cpp
src/mbgl/style/expression/comparison.cpp
src/mbgl/style/expression/compound_expression.cpp
src/mbgl/style/expression/dsl.cpp
src/mbgl/style/expression/equals.cpp
src/mbgl/style/expression/expression.cpp
src/mbgl/style/expression/find_zoom_curve.cpp
src/mbgl/style/expression/get_covering_stops.cpp
Expand Down
68 changes: 68 additions & 0 deletions include/mbgl/style/expression/comparison.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#pragma once

#include <mbgl/style/expression/collator_expression.hpp>
#include <mbgl/style/expression/expression.hpp>
#include <mbgl/style/expression/parsing_context.hpp>
#include <mbgl/style/conversion.hpp>

#include <memory>

namespace mbgl {
namespace style {
namespace expression {

ParseResult parseComparison(const mbgl::style::conversion::Convertible&, ParsingContext&);

class BasicComparison : public Expression {
public:
using CompareFunctionType = bool (*) (Value, Value);

BasicComparison(
std::string op,
std::unique_ptr<Expression> lhs,
std::unique_ptr<Expression> rhs);

void eachChild(const std::function<void(const Expression&)>& visit) const override;
bool operator==(const Expression&) const override;
EvaluationResult evaluate(const EvaluationContext&) const override;
std::vector<optional<Value>> possibleOutputs() const override;
std::string getOperator() const override;

private:
std::string op;
CompareFunctionType compare;
std::unique_ptr<Expression> lhs;
std::unique_ptr<Expression> rhs;
bool needsRuntimeTypeCheck;
};

class CollatorComparison : public Expression {
public:
using CompareFunctionType = bool (*) (std::string, std::string, Collator);

CollatorComparison(
std::string op,
std::unique_ptr<Expression> lhs,
std::unique_ptr<Expression> rhs,
std::unique_ptr<Expression> collator);

void eachChild(const std::function<void(const Expression&)>& visit) const override;
bool operator==(const Expression&) const override;
EvaluationResult evaluate(const EvaluationContext&) const override;
std::vector<optional<Value>> possibleOutputs() const override;
std::string getOperator() const override;

private:
std::string op;
CompareFunctionType compare;
std::unique_ptr<Expression> lhs;
std::unique_ptr<Expression> rhs;
std::unique_ptr<Expression> collator;
bool needsRuntimeTypeCheck;
};



} // namespace expression
} // namespace style
} // namespace mbgl
1 change: 1 addition & 0 deletions include/mbgl/style/expression/dsl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ std::unique_ptr<Expression> literal(Value value);
std::unique_ptr<Expression> literal(std::initializer_list<double> value);
std::unique_ptr<Expression> literal(std::initializer_list<const char *> value);

std::unique_ptr<Expression> assertion(type::Type, std::unique_ptr<Expression>);
std::unique_ptr<Expression> number(std::unique_ptr<Expression>);
std::unique_ptr<Expression> string(std::unique_ptr<Expression>);
std::unique_ptr<Expression> boolean(std::unique_ptr<Expression>);
Expand Down
35 changes: 0 additions & 35 deletions include/mbgl/style/expression/equals.hpp

This file was deleted.

2 changes: 1 addition & 1 deletion include/mbgl/style/expression/expression.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ enum class Kind : int32_t {
Case,
Any,
All,
Equals,
Comparison,
};

class Expression {
Expand Down
2 changes: 1 addition & 1 deletion mapbox-gl-js
Submodule mapbox-gl-js updated 151 files
Loading