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