cabal-version: >= 1.10
name: alex
version: 3.5.1.0
-- don't forget updating changelog.md!
license: BSD3
license-file: LICENSE
copyright: (c) Chis Dornan, Simon Marlow
author: Chris Dornan and Simon Marlow
maintainer: https://github.com/haskell/alex
bug-reports: https://github.com/haskell/alex/issues
stability: stable
homepage: http://www.haskell.org/alex/
synopsis: Alex is a tool for generating lexical analysers in Haskell
description:
  Alex is a tool for generating lexical analysers in Haskell.
  It takes a description of tokens based on regular
  expressions and generates a Haskell module containing code
  for scanning text efficiently. It is similar to the tool
  lex or flex for C/C++.

category: Development
build-type: Simple

tested-with:
        GHC == 9.8.2
        GHC == 9.6.4
        GHC == 9.4.8
        GHC == 9.2.8
        GHC == 9.0.2
        GHC == 8.10.7
        GHC == 8.8.4
        GHC == 8.6.5
        GHC == 8.4.4
        GHC == 8.2.2
        GHC == 8.0.2

data-dir: data/

data-files:
        AlexTemplate.hs
        AlexWrappers.hs

extra-source-files:
        CHANGELOG.md
        README.md
        examples/Makefile
        examples/Tokens.x
        examples/Tokens_gscan.x
        examples/Tokens_posn.x
        examples/examples.x
        examples/haskell.x
        examples/lit.x
        examples/pp.x
        examples/state.x
        examples/tiny.y
        examples/words.x
        examples/words_monad.x
        examples/words_posn.x
        src/Parser.y.boot
        src/Scan.x.boot
        src/ghc_hooks.c
        tests/Makefile
        tests/simple.x
        tests/null.x
        tests/tokens.x
        tests/tokens_gscan.x
        tests/tokens_posn.x
        tests/tokens_bytestring.x
        tests/tokens_posn_bytestring.x
        tests/tokens_scan_user.x
        tests/tokens_strict_bytestring.x
        tests/tokens_monad_bytestring.x
        tests/tokens_monadUserState_bytestring.x
        tests/tokens_bytestring_unicode.x
        tests/basic_typeclass.x
        tests/basic_typeclass_bytestring.x
        tests/default_typeclass.x
        tests/gscan_typeclass.x
        tests/posn_typeclass.x
        tests/monad_typeclass.x
        tests/monad_typeclass_bytestring.x
        tests/monadUserState_typeclass.x
        tests/monadUserState_typeclass_bytestring.x
        tests/posn_typeclass_bytestring.x
        tests/strict_typeclass.x
        tests/unicode.x
        tests/issue_71.x
        tests/issue_119.x
        tests/issue_141.x
        tests/issue_197.x
        tests/strict_text_typeclass.x
        tests/posn_typeclass_strict_text.x
        tests/tokens_monadUserState_strict_text.x

source-repository head
    type:     git
    location: https://github.com/haskell/alex.git

executable alex
  hs-source-dirs: src
  main-is: Main.hs

  build-depends:
      base >= 4.9 && < 5
        -- Data.List.NonEmpty enters `base` at 4.9
    , array
    , containers
    , directory

  default-language:
    Haskell2010
  default-extensions:
    PatternSynonyms
    ScopedTypeVariables
    TupleSections
  other-extensions:
    CPP
    FlexibleContexts
    MagicHash
    NondecreasingIndentation
    OverloadedLists
  ghc-options: -Wall -Wcompat -rtsopts

  other-modules:
    AbsSyn
    CharSet
    DFA
    DFAMin
    DFS
    Info
    NFA
    Output
    Paths_alex
    Parser
    ParseMonad
    Scan
    Util
    UTF8
    Data.Ranged
    Data.Ranged.Boundaries
    Data.Ranged.RangedSet
    Data.Ranged.Ranges

test-suite tests
  type: exitcode-stdio-1.0
  main-is: test.hs
  -- This line is important as it ensures that the local `exe:alex` component declared above is built before the test-suite component is invoked, as well as making sure that `alex` is made available on $PATH and `$alex_datadir` is set accordingly before invoking `test.hs`
  build-tools: alex

  default-language: Haskell2010

  build-depends: base, process