bool GroupExpression::operator==(const GroupExpression &r) {
  bool eq = (op == r.Op());

  auto left_groups = child_groups;
  auto right_groups = r.child_groups;

  std::sort(left_groups.begin(), left_groups.end());

  std::sort(right_groups.begin(), right_groups.end());
  for (size_t i = 0; i < left_groups.size(); ++i) {
    eq = eq && (left_groups[i] == right_groups[i]);
  }

  return eq;
}
Beispiel #2
0
bool GroupExpression::operator==(const GroupExpression &r) {
  return (op == r.Op()) && (child_groups == r.child_groups);
}