static bool stack__subtree_is_equivalent()

in lib/src/stack.c [158:169]


static bool stack__subtree_is_equivalent(Subtree left, Subtree right) {
  return
    left.ptr == right.ptr ||
    (left.ptr && right.ptr &&
     ts_subtree_symbol(left) == ts_subtree_symbol(right) &&
     ((ts_subtree_error_cost(left) > 0 && ts_subtree_error_cost(right) > 0) ||
      (ts_subtree_padding(left).bytes == ts_subtree_padding(right).bytes &&
       ts_subtree_size(left).bytes == ts_subtree_size(right).bytes &&
       ts_subtree_child_count(left) == ts_subtree_child_count(right) &&
       ts_subtree_extra(left) == ts_subtree_extra(right) &&
       ts_subtree_external_scanner_state_eq(left, right))));
}