13 #include <initializer_list>
20 namespace CIPLabeler {
27 Rules(std::initializer_list<SequenceRule *> rules) {
28 for (
auto &rule : rules) {
34 for (
auto &rule : d_rules) {
40 if (rule ==
nullptr) {
41 throw std::runtime_error(
"No sequence rule provided");
43 d_rules.push_back(rule);
59 for (
const auto &rule : d_rules) {
61 int value = rule->recursiveCompare(o1, o2);
74 for (
const auto &rule : d_rules) {
76 int value = rule->recursiveCompare(a, b);
87 std::vector<const SequenceRule *> d_rules;
Rules(std::initializer_list< SequenceRule * > rules)
int getComparision(const Edge *a, const Edge *b, bool deep) const override
const Sort * getSorter() const override
void add(SequenceRule *rule)
int getNumSubRules() const
int compare(const Edge *o1, const Edge *o2) const override
std::unique_ptr< const Sort > dp_sorter
void setSorter(const Sort *sorter)