from bmc_agent.backends.bmc_backend import BMCBackend from bmc_agent.backends.cbmc_backend import CBMCBackend from bmc_agent.backends.kani_backend import KaniBackend def backend_for(language: str, config) -> BMCBackend: """Return the BMC backend appropriate for *language*. ``language`` is one of the values produced by :func:`bmc_agent.source_parser.detect_language` — ``"c"`` for C/header files, ``"rust"`` for ``.rs`` files. Unknown languages fall back to :class:`CBMCBackend` to preserve existing behaviour for callers that don't pre-detect. """ if language == "rust": return KaniBackend(config) return CBMCBackend(config) __all__ = ["BMCBackend", "CBMCBackend", "KaniBackend", "backend_for"]