packages feed

language-smtlib-0.2.0.0: language-smtlib.cabal

cabal-version: 2.2

-- This file has been generated from package.yaml by hpack version 0.39.6.
--
-- see: https://github.com/sol/hpack

name:           language-smtlib
version:        0.2.0.0
synopsis:       Parsing, printing and incremental I/O for the SMT-LIB 2 format
description:    A @Text@-based library for parsing, printing, and incrementally streaming the SMT-LIB 2.7 format.
                .
                It provides a parametric, fully-annotated AST in which every node carries an optional source-span annotation; a megaparsec-based parser with both whole-text and incremental (S-expression framing) entry points, suitable for solver pipes and REPLs; and a prettyprinter-based printer that guarantees @parse . render == id@ for well-formed trees.
                .
                See the README at <https://github.com/msakai/language-smtlib#readme> for details and examples.
category:       Language, SMT
homepage:       https://github.com/msakai/language-smtlib#readme
bug-reports:    https://github.com/msakai/language-smtlib/issues
author:         Masahiro Sakai
maintainer:     masahiro.sakai@gmail.com
copyright:      2026 Masahiro Sakai
license:        BSD-3-Clause
license-file:   LICENSE
build-type:     Simple
tested-with:
    GHC == 9.6.7
  , GHC == 9.8.4
  , GHC == 9.10.3
  , GHC == 9.12.4
extra-source-files:
    test/samples/smt/assertion-stack-levels-2.smt2
    test/samples/smt/assertion-stack-levels.smt2
    test/samples/smt/assumptions.smt2
    test/samples/smt/chain.smt2
    test/samples/smt/declare-const.smt2
    test/samples/smt/define-fun-rec.smt2
    test/samples/smt/define-funs-rec.smt2
    test/samples/smt/division-by-zero.smt2
    test/samples/smt/echo.smt2
    test/samples/smt/figure-3.11-example-script.smt2
    test/samples/smt/figure-3.12-example-script.smt2
    test/samples/smt/get-assertions.smt2
    test/samples/smt/get-assignment.smt2
    test/samples/smt/get-model.smt2
    test/samples/smt/get-value.smt2
    test/samples/smt/global-declarations.smt2
    test/samples/smt/list-append-match.smt2
    test/samples/smt/print-success.smt2
    test/samples/smt/QF_ABV.smt2
    test/samples/smt/QF_AUFLIA.smt2
    test/samples/smt/QF_BV.smt2
    test/samples/smt/QF_LIA.smt2
    test/samples/smt/QF_LRA.smt2
    test/samples/smt/QF_LRA_2.smt2
    test/samples/smt/QF_UF.smt2
    test/samples/smt/QF_UFLRA.smt2
    test/samples/smt/quoted-symbol.smt2
    test/samples/smt/reset-assertions.smt2
    test/samples/smt/reset.smt2
    test/samples/smt/set-info-status.smt2
    test/samples/smt/smtlib-2.7-check-sat-assuming-terms.smt2
    test/samples/smt/smtlib-2.7-declare-sort-parameter.smt2
    test/samples/smt/smtlib-2.7-lambda-define-const.smt2
    test/samples/smt/swap.smt2
    test/samples/smt/unicode-symbol.smt2
    test/samples/smt/unsat-core.smt2
extra-doc-files:
    README.md
    CHANGELOG.md
    conformance/README.md
    docs/conformance.md

source-repository head
  type: git
  location: https://github.com/msakai/language-smtlib

flag profiling
  description: Add -fprof-auto (automatic cost centres) to this package's own components when building with profiling.  Off by default so that downstream packages profiling their own code are not cluttered with cost centres from language-smtlib.
  manual: True
  default: False

flag tools
  description: Build the developer-facing command-line tools shipped with this package: language-smtlib-fmt, a round-trip front end that parses an SMT-LIB script and re-emits it in canonical form; and language-smtlib-conformance, a driver that round-trips large external SMT-LIB benchmark suites (e.g. the SMT-LIB / SMT-COMP collections on Zenodo).  Off by default: these are development utilities, not needed by downstream packages that only depend on the library.
  manual: True
  default: False

library
  exposed-modules:
      Language.SMTLIB
      Language.SMTLIB.Internal.Lexical
      Language.SMTLIB.Parser
      Language.SMTLIB.Parser.Command
      Language.SMTLIB.Parser.Internal
      Language.SMTLIB.Parser.Response
      Language.SMTLIB.Parser.SExpr
      Language.SMTLIB.Parser.Term
      Language.SMTLIB.Printer
      Language.SMTLIB.Printer.Class
      Language.SMTLIB.Reader
      Language.SMTLIB.Reader.Handle
      Language.SMTLIB.Syntax
      Language.SMTLIB.Syntax.Annotation
      Language.SMTLIB.Syntax.Attribute
      Language.SMTLIB.Syntax.Command
      Language.SMTLIB.Syntax.Constant
      Language.SMTLIB.Syntax.Datatype
      Language.SMTLIB.Syntax.Identifier
      Language.SMTLIB.Syntax.Response
      Language.SMTLIB.Syntax.Term
  other-modules:
      Paths_language_smtlib
  autogen-modules:
      Paths_language_smtlib
  hs-source-dirs:
      src
  default-extensions:
      DeriveFoldable
      DeriveFunctor
      DeriveGeneric
      DeriveTraversable
      LambdaCase
      OverloadedStrings
      PatternSynonyms
      TupleSections
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints
  build-depends:
      base >=4.7 && <5
    , containers >=0.6 && <0.8
    , hashable >=1.3 && <1.6
    , megaparsec >=9.0 && <10
    , parser-combinators >=1.0 && <1.4
    , prettyprinter ==1.7.*
    , scientific ==0.3.*
    , text >=1.2 && <2.2
  default-language: Haskell2010
  if flag(profiling)
    ghc-prof-options: -fprof-auto

executable language-smtlib-conformance
  main-is: Main.hs
  other-modules:
      Paths_language_smtlib
  autogen-modules:
      Paths_language_smtlib
  hs-source-dirs:
      conformance
  default-extensions:
      DeriveFoldable
      DeriveFunctor
      DeriveGeneric
      DeriveTraversable
      LambdaCase
      OverloadedStrings
      PatternSynonyms
      TupleSections
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      base >=4.7 && <5
    , directory ==1.3.*
    , filepath >=1.4 && <1.6
    , language-smtlib
    , text >=1.2 && <2.2
  default-language: Haskell2010
  if !flag(tools)
    buildable: False
  if flag(profiling)
    ghc-prof-options: -fprof-auto

executable language-smtlib-fmt
  main-is: Main.hs
  other-modules:
      Paths_language_smtlib
  autogen-modules:
      Paths_language_smtlib
  hs-source-dirs:
      app
  default-extensions:
      DeriveFoldable
      DeriveFunctor
      DeriveGeneric
      DeriveTraversable
      LambdaCase
      OverloadedStrings
      PatternSynonyms
      TupleSections
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      base >=4.7 && <5
    , language-smtlib
    , text >=1.2 && <2.2
  default-language: Haskell2010
  if !flag(tools)
    buildable: False
  if flag(profiling)
    ghc-prof-options: -fprof-auto

test-suite language-smtlib-test
  type: exitcode-stdio-1.0
  main-is: Spec.hs
  other-modules:
      Arbitrary
      Paths_language_smtlib
  autogen-modules:
      Paths_language_smtlib
  hs-source-dirs:
      test
  default-extensions:
      DeriveFoldable
      DeriveFunctor
      DeriveGeneric
      DeriveTraversable
      LambdaCase
      OverloadedStrings
      PatternSynonyms
      TupleSections
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      QuickCheck
    , base >=4.7 && <5
    , containers
    , directory
    , filepath
    , hashable
    , language-smtlib
    , megaparsec
    , quickcheck-instances
    , tasty
    , tasty-hunit
    , tasty-quickcheck
    , text
    , unordered-containers
  default-language: Haskell2010