packages feed

ptera-0.2.0.0: ptera.cabal

cabal-version:       3.0
build-type:          Custom

name:                ptera
version:             0.2.0.0
license:             Apache-2.0 OR MPL-2.0
license-file:        LICENSE
copyright:           (c) 2021 Mizunashi Mana
author:              Mizunashi Mana
maintainer:          mizunashi-mana@noreply.git

category:            Parsing
homepage:            https://github.com/mizunashi-mana/ptera
bug-reports:         https://github.com/mizunashi-mana/ptera/issues
synopsis:            A parser generator
description:
    Ptera is haskell libraries and toolchains for generating parser.

extra-source-files:
    README.md
    CHANGELOG.md

source-repository head
  type:     git
  location: https://github.com/mizunashi-mana/ptera.git

flag develop
    default:     False
    manual:      True
    description: Turn on some options for development

common general
    default-language:
        Haskell2010
    default-extensions:
        NoImplicitPrelude
        BangPatterns
        BinaryLiterals
        BlockArguments
        ConstraintKinds
        DataKinds
        DefaultSignatures
        DeriveFoldable
        DeriveFunctor
        DeriveGeneric
        DeriveLift
        DeriveTraversable
        DerivingVia
        DuplicateRecordFields
        EmptyCase
        FlexibleContexts
        FlexibleInstances
        FunctionalDependencies
        GADTs
        InstanceSigs
        LambdaCase
        MagicHash
        MultiParamTypeClasses
        MultiWayIf
        NamedFieldPuns
        NegativeLiterals
        NumericUnderscores
        OverloadedLabels
        PackageImports
        PatternSynonyms
        PolyKinds
        RankNTypes
        ScopedTypeVariables
        StandaloneDeriving
        StandaloneKindSignatures
        Strict
        TypeApplications
        TypeFamilies
        TypeOperators
        UnboxedSums
        UnboxedTuples

    if flag(develop)
        ghc-options:
            -Wall
            -Wcompat
            -Wincomplete-uni-patterns
            -Wmonomorphism-restriction
            -Wpartial-fields

            -fprint-explicit-foralls
            -frefinement-level-hole-fits=1

            -dcore-lint

    build-depends:
        base                 >= 4.14.0 && < 5,

        -- project depends
        ptera-core              >= 0.1.0 && < 0.2,
        containers              >= 0.6.0 && < 0.7,
        unordered-containers    >= 0.2.0 && < 0.3,
        membership              >= 0.0.1 && < 0.1,
        enummapset-th           >= 0.6.0 && < 0.7,

    autogen-modules:
        Paths_ptera
    other-modules:
        Paths_ptera

custom-setup
    setup-depends:
        base,
        Cabal,
        cabal-doctest,

library
    import:
        general,
    hs-source-dirs:
        src
    exposed-modules:
        Language.Parser.Ptera

        Language.Parser.Ptera.Syntax
        Language.Parser.Ptera.Syntax.SafeGrammar
        Language.Parser.Ptera.Scanner
        Language.Parser.Ptera.Runner
        Language.Parser.Ptera.Runner.Parser
        Language.Parser.Ptera.Runner.RunT
        Language.Parser.Ptera.Pipeline.Grammar2Runner
        Language.Parser.Ptera.Pipeline.SafeGrammar2SRB
        Language.Parser.Ptera.Pipeline.SRB2Parser

        Language.Parser.Ptera.Data.HEnum
    reexported-modules:
        Language.Parser.Ptera.Data.HFList

test-suite doctest
    import:
        general,
    type:
        exitcode-stdio-1.0
    hs-source-dirs:
        test/doctest
    main-is:
        Doctest.hs
    build-depends:
        doctest,
        QuickCheck,
    autogen-modules:
        Build_doctests
    other-modules:
        Build_doctests

test-suite spec
    import:
        general,
    type:
        exitcode-stdio-1.0
    hs-source-dirs:
        test/spec
    main-is:
        HSpecDriver.hs
    ghc-options:
        -Wno-missing-home-modules
    build-tool-depends:
        hspec-discover:hspec-discover,
    build-depends:
        ptera,

        hspec,
        QuickCheck,