13 #include <initializer_list>
20 namespace CIPLabeler {
26 Rules(std::initializer_list<SequenceRule *> rules) {
27 for (
auto &rule : rules) {
33 for (
auto &rule : d_rules) {
39 if (rule ==
nullptr) {
40 throw std::runtime_error(
"No sequence rule provided");
42 d_rules.push_back(rule);
58 for (
const auto &rule : d_rules) {
60 int value = rule->recursiveCompare(o1, o2);
73 for (
const auto &rule : d_rules) {
75 int value = rule->recursiveCompare(a, b);
86 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)