"""
bex — Paper-faithful implementation of BEX inference algorithms.

Papers:
  - Bex et al. 2010 (TODS): Inference of Concise Regular Expressions and DTDs
  - Bex et al. 2010 (arXiv 1004.2372): Learning Deterministic Regular Expressions

Algorithms implemented:
  TODS 2010: 2T-INF, REWRITE, RWR, RWR², RWR₀, CRX
  arXiv 2010: iKoa, Disambiguate, rwr², iDRegEx
"""

from .soa import SOA
from .twotinf import build_soa
from .rwr0 import rwr0
from .crx import CRX
from .ikoa import ikoa
from .rwrsq import rwr_sq
from .idregex import idregex
from .kore import kOREInference, validate_k_ore
from .koa import KOA, build_complete_koa
from .expr import concat, disj, star, optional, alphabet, strip_k
from .marking import mark_koa
from .tokenizer import YAMLTokenizer
from .ensemble import infer_ensemble
from .template import generate_template
from .reduce import reduce_contexts, soa_distance, build_soa_with_support, minimize_contexts, reduce_and_infer
from .gbnf import to_gbnf, to_gbnf_with_rules
from .crx_refined import crx_refined, crx_with_confidence

__version__ = "0.2.0"
