cabal-version:  >=1.10
name:           haskell-src
-- don't forget to update the changelog.md!
version:        1.0.3.2
build-type:     Simple

license:        BSD3
license-file:   LICENSE
author:         Simon Marlow, Sven Panne and Noel Winstanley
maintainer:     Andreas Abel
bug-reports:    https://github.com/haskell-pkg-janitors/haskell-src/issues
stability:      stable
category:       Language
synopsis:       Support for manipulating Haskell source code
description:
    The @haskell-src@ package provides support for manipulating Haskell
    source code. The package provides a lexer, parser and
    pretty-printer, and a definition of a Haskell abstract syntax tree
    (AST). Common uses of this package are to parse or generate
    <http://www.haskell.org/onlinereport/ Haskell 98> code.

tested-with:
  GHC == 9.2.1
  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
  GHC == 7.10.3
  GHC == 7.8.4
  GHC == 7.6.3
  GHC == 7.4.2
  GHC == 7.2.2
  GHC == 7.0.4

extra-source-files: changelog.md

source-repository head
    type:     git
    location: https://github.com/haskell-pkg-janitors/haskell-src.git

library
  exposed-modules:
        Language.Haskell.Lexer,
        Language.Haskell.Parser,
        Language.Haskell.ParseMonad,
        Language.Haskell.Pretty,
        Language.Haskell.Syntax,
        Language.Haskell.ParseUtils

  build-depends: base    >= 4.3 && < 4.17
               , syb     >= 0.1 && < 0.8
               , pretty  >= 1.0.1.2 && < 1.2
               , array   >= 0.3 && < 0.6

  if !impl(ghc >= 8.0)
    build-depends: semigroups == 0.18.*, fail == 4.9.*
  else
    ghc-options: -Wcompat -Wnoncanonical-monad-instances

  build-tools: happy >= 1.19 && < 1.22

  default-language: Haskell98

  ghc-options: -Wall