aprover / bmc_agent /backends /__init__.py
theyoucheng's picture
Deploy AProver demo
ab54eb4 verified
Raw
History Blame Contribute Delete
749 Bytes
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"]