bool kernel_eq_t<ctx_t, stadfa>::operator()(const kernel_t *x, const kernel_t *y) const
{
    // check that kernel sizes, NFA states, tags versions,
    // lookahead tags and precedence table coincide
    const size_t n = x->size;
    return n == y->size
        && memcmp(x->state, y->state, n * sizeof(void*)) == 0
        && (!x->prectbl
            || memcmp(x->prectbl, y->prectbl, n * n * sizeof(prectable_t)) == 0)
        && (stadfa
            ? equal_stacmd(ctx, x, y)
            : memcmp(x->tvers, y->tvers, n * sizeof(uint32_t)) == 0)
        && equal_lookahead_tags(ctx, x, y);
}
bool kernel_eq_t<ctx_t, stadfa>::operator()(const kernel_t *x, const kernel_t *y) const
{
     
     
    const size_t n = x->size;
    return n == y->size
        && memcmp(x->state, y->state, n * sizeof(void*)) == 0
        && (!x->prectbl
            || memcmp(x->prectbl, y->prectbl, n * n * sizeof(prectable_t)) == 0)
        && (stadfa
            ? equal_stacmd(ctx, x, y)
            : memcmp(x->tvers, y->tvers, n * sizeof(uint32_t)) == 0)
        && equal_lookahead_tags(ctx, x, y);
}