packages feed

fluent-syntax-1.0.0: fluent-syntax.cabal

cabal-version: 3.0
name: fluent-syntax
version: 1.0.0
synopsis: The syntax tree and parser for Project Fluent
description: The syntax tree and parser for <https://projectfluent.org Project Fluent>.
license: EUPL-1.2
license-file: LICENCE
author: IDA
maintainer: IDA
homepage: https://digital-autonomy.institute
bug-reports: https://issues.digital-autonomy.institute
category: Language
build-type: Simple
extra-doc-files:
  CHANGELOG.md

flag template-haskell
  description: Include the module Language.Fluent.TH, which uses Template Haskell
  default: True
  manual: True

common common
  default-language: Haskell2010
  ghc-options:
    -Weverything
    -Wno-all-missed-specialisations
    -Wno-missing-export-lists
    -Wno-missing-import-lists
    -Wno-missing-kind-signatures
    -Wno-missing-role-annotations
    -Wno-missing-safe-haskell-mode
    -Wno-unsafe
    -Wno-unused-do-bind

  default-extensions:
    BlockArguments
    DeriveGeneric
    DerivingStrategies
    GeneralizedNewtypeDeriving
    ImportQualifiedPost
    LambdaCase
    NamedFieldPuns
    NoImplicitPrelude
    OverloadedRecordDot
    OverloadedStrings
    RecordWildCards
    Trustworthy
    ViewPatterns

library
  import: common
  hs-source-dirs: src
  build-depends:
    attoparsec >=0.14 && <0.15,
    base <5,
    hashable >=1.1 && <1.6,
    text <2.3,

  exposed-modules:
    Language.Fluent.AST
    Language.Fluent.Parser

  if flag(template-haskell)
    build-depends:
      template-haskell >=2.20 && <2.25

    exposed-modules:
      Language.Fluent.TH

test-suite test
  import: common
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: Main.hs
  build-depends:
    aeson >=2.2 && <2.3,
    base <5,
    directory >=1.3 && <1.4,
    filepath >=1.4 && <1.6,
    fluent-syntax,
    hspec >=2.11 && <2.12,
    text <2.3,