packages feed

anagrep-0.1.0.1: anagrep.cabal

cabal-version:       >=1.10
name:                anagrep
version:             0.1.0.1
synopsis:            Find strings with permutations (anagrams) that match a regular expression
description:         
  Given a regular expression, determine if it matches any permutation of a given string.  For example, @"lt[aeiou]*"@ would match all strings with one \'l\', one \'t\', and vowels (like \"elate\", \"tail\", \"tl\", etc.).
  Regular expression parsing is based on <//hackage.haskell.org/package/regex-tdfa regex-tdfa> and generally follows those semantics, but not all regular expression features are supported.  For example, repeat modifiers cannot be applied to groups (such as @"(abc)*"@).
  The goal is for matching to be fairly efficient in most cases, given that this problem is NP-complete.
license:             BSD3
author:              Dylan Simon
maintainer:          dylan@dylex.net
copyright:           2020, Dylan Simon
category:            Text
build-type:          Simple
extra-source-files:  README

source-repository head
  type:     git
  location: git://github.com/dylex/anagrep

flag ghc
  description: Enable ghc-specific optimizations (on internal Natural representation)
  default: True

library
  exposed-modules:
    Text.Regex.Anagram
    Text.Regex.Anagram.Bits
  other-modules:
    Text.Regex.Anagram.Types
    Text.Regex.Anagram.Util
    Text.Regex.Anagram.Parse
    Text.Regex.Anagram.Compile
    Text.Regex.Anagram.Test
  build-depends:       
    base < 5,
    containers,
    vector,
    regex-tdfa,
    case-insensitive,
    deepseq
  if flag(ghc)
    build-depends: ghc-prim, integer-gmp
  default-language:    Haskell2010
  ghc-options: -Wall

executable anagrep
  hs-source-dirs: src
  main-is:  anagrep.hs
  build-depends:       
    base < 5,
    anagrep,
    bytestring,
    case-insensitive
  default-language:    Haskell2010
  ghc-options: -Wall

test-suite test
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is:  Main.hs
  build-depends:
    base < 5,
    anagrep,
    case-insensitive,
    hspec,
    QuickCheck
  default-language:    Haskell2010
  ghc-options: -Wall

benchmark bench
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is:  Bench.hs
  build-depends:
    base < 5,
    anagrep,
    bytestring,
    criterion
  default-language:    Haskell2010
  ghc-options: -Wall