name:          cimple
version:       0.0.18
synopsis:      Simple C-like programming language
homepage:      https://toktok.github.io/
license:       GPL-3
license-file:  LICENSE
author:        Iphigenia Df <iphydf@gmail.com>
maintainer:    Iphigenia Df <iphydf@gmail.com>
copyright:     Copyright (c) 2016-2022, Iphigenia Df
category:      Data
stability:     Experimental
cabal-version: >=1.10
build-type:    Simple
description:
  Parser and AST for Cimple, a simple C-like programming language.

source-repository head
  type:     git
  location: https://github.com/TokTok/hs-cimple

library
  default-language: Haskell2010
  hs-source-dirs:   src
  ghc-options:      -Wall
  build-tools:      alex >=0, happy >=0
  exposed-modules:
    Language.Cimple
    Language.Cimple.Diagnostics
    Language.Cimple.IO
    Language.Cimple.MapAst
    Language.Cimple.Pretty
    Language.Cimple.Program
    Language.Cimple.TraverseAst

  other-modules:
    Language.Cimple.Annot
    Language.Cimple.Ast
    Language.Cimple.CommentParser
    Language.Cimple.DescribeAst
    Language.Cimple.Flatten
    Language.Cimple.Graph
    Language.Cimple.Lexer
    Language.Cimple.Parser
    Language.Cimple.ParseResult
    Language.Cimple.SemCheck.Includes
    Language.Cimple.Tokens
    Language.Cimple.TranslationUnit
    Language.Cimple.TreeParser

  build-depends:
      aeson
    , ansi-wl-pprint
    , array
    , base                 <5
    , bytestring
    , containers
    , data-fix
    , filepath
    , monad-parallel
    , mtl
    , recursion-schemes
    , split
    , text
    , transformers-compat

executable cimplefmt
  default-language: Haskell2010
  hs-source-dirs:   tools
  ghc-options:      -Wall
  main-is:          cimplefmt.hs
  build-depends:
      base        <5
    , bytestring
    , cimple
    , text

executable dump-ast
  default-language: Haskell2010
  hs-source-dirs:   tools
  ghc-options:      -Wall
  main-is:          dump-ast.hs
  build-depends:
      base        <5
    , cimple
    , groom

executable dump-tokens
  default-language: Haskell2010
  hs-source-dirs:   tools
  ghc-options:      -Wall
  main-is:          dump-tokens.hs
  build-depends:
      base        <5
    , bytestring
    , cimple
    , groom

executable include-graph
  default-language: Haskell2010
  hs-source-dirs:   tools
  ghc-options:      -Wall
  main-is:          include-graph.hs
  build-depends:
      base    <5
    , cimple
    , groom

test-suite testsuite
  type:               exitcode-stdio-1.0
  default-language:   Haskell2010
  hs-source-dirs:     test
  main-is:            testsuite.hs
  other-modules:
    Language.Cimple.AstSpec
    Language.Cimple.ParserSpec
    Language.Cimple.PrettySpec

  ghc-options:        -Wall -Wno-unused-imports
  build-tool-depends: hspec-discover:hspec-discover
  build-depends:
      ansi-wl-pprint
    , base                 <5
    , cimple
    , data-fix
    , hspec
    , text
    , transformers-compat