packages feed

sasha-0.2: sasha.cabal

cabal-version:      3.0
name:               sasha
version:            0.2
author:             Oleg Grenrus <oleg.grenrus@iki.fi>
maintainer:         Oleg Grenrus <oleg.grenrus@iki.fi>
synopsis:           A staged lexer generator
description:
  Like @alex@, @sasha@ is lexer\/scanner generator; but it is using Typed Template Haskell.
  .
  The generated scanners are comparable in speed to @alex@ generated ones.

category:           Lexing, Development
license:            BSD-3-Clause
license-file:       LICENSE
homepage:           https://github.com/phadej/sasha
bug-reports:        https://github.com/phadej/sasha/issues
extra-source-files:
  CHANGELOG.md
  example.json

tested-with:        GHC ==9.0.2 || ==9.2.7 || ==9.4.5 || ==9.6.2

source-repository head
  type:     git
  location: https://github.com/phadej/sasha.git

common common
  default-language:   Haskell2010
  ghc-options:        -Wall
  default-extensions:
    BangPatterns
    OverloadedStrings
    PatternSynonyms
    ScopedTypeVariables
    TypeApplications

library
  import:            common
  hs-source-dirs:    src
  build-depends:
    , base              ^>=4.15.0.0  || ^>=4.16.0.0 || ^>=4.17.0.0 || ^>=4.18.0.0
    , bytestring        ^>=0.10.12.1 || ^>=0.11.3.1
    , containers        ^>=0.6.4.1
    , lattices          >=2.1        && <2.2        || ^>=2.2
    , QuickCheck        ^>=2.14.2
    , template-haskell
    , th-letrec         ^>=0.1
    , wide-word         ^>=0.1.4.0
    , word8set          ^>=0.1.1

  exposed-modules:
    Sasha
    Sasha.Internal.ERE
    Sasha.Internal.Word8Set
    Sasha.TTH

  x-docspec-options:
    -XOverloadedStrings --check-properties "--property-variables=c p r s t q"

test-suite sasha-tests
  import:             common
  type:               exitcode-stdio-1.0
  hs-source-dirs:     tests
  main-is:            sasha-tests.hs
  other-modules:
    Sasha.Example.Alex
    Sasha.Example.Sasha
    Sasha.Example.SaTTH
    Sasha.Example.Token

  build-depends:
    , aeson
    , array
    , base
    , bytestring
    , deepseq
    , lattices
    , sasha
    , template-haskell

  -- test dependencies
  build-depends:
    , tasty             ^>=1.4.3
    , tasty-bench       ^>=0.3.2
    , tasty-hunit       ^>=0.10.0.3
    , tasty-quickcheck  ^>=0.10.2
    , text              ^>=1.2.5.0  || ^>=2.0

  build-tool-depends: alex:alex ^>=3.2.7.1