-- Initial Language.Fortran.cabal generated by cabal init.  For further
-- documentation, see http://haskell.org/cabal/users-guide/

name:                fortran-src
version:             0.1.0.2
synopsis:            Parser and anlyses for Fortran standards 66, 77, 90.
description:         Provides lexing, parsing, and basic analyses of Fortran code covering standards: FORTRAN 66, FORTRAN 77, and Fortran 90. Includes data flow and basic block analysis, a renamer, and type analysis. For example usage, see the 'camfort' project, which uses fortran-src as its front end.
license:             Apache-2.0
license-file:        LICENSE
author:              Mistral Contrastin, Matthew Danish, Dominic Orchard, Andrew Rice
maintainer:          me@madgen.net
-- copyright:
category:            Language
build-type:          Simple
-- extra-source-files:
cabal-version:       >=1.10
source-repository head
  type:     git
  location: https://github.com/camfort/fortran-src

executable fortran-src
  main-is: Main.hs
  hs-source-dirs: src
  build-depends:
    base >= 4.6 && < 5,
    mtl >= 2.2,
    array >= 0.5,
    uniplate >= 1.6,
    GenericPretty >= 1.2,
    pretty >= 1.1,
    containers >= 0.5,
    text >= 1.2,
    bytestring >= 0.10,
    fgl
  other-modules:
    Language.Fortran.Analysis
    Language.Fortran.Analysis.Renaming
    Language.Fortran.Analysis.Types
    Language.Fortran.Analysis.BBlocks
    Language.Fortran.Analysis.DataFlow
    Language.Fortran.AST
    Language.Fortran.Lexer.FixedForm
    Language.Fortran.Lexer.FreeForm
    Language.Fortran.ParserMonad
    Language.Fortran.Parser.Any
    Language.Fortran.Parser.Fortran66
    Language.Fortran.Parser.Fortran77
    Language.Fortran.Parser.Fortran90
    Language.Fortran.Transformation.Disambiguation.Function
    Language.Fortran.Transformation.Grouping
    Language.Fortran.Transformation.TransformMonad
    Language.Fortran.Transformer
    Language.Fortran.Util.Position
    Language.Fortran.Util.FirstParameter
    Language.Fortran.Util.SecondParameter
  ghc-options: -fno-warn-tabs
  default-language: Haskell2010

library
  exposed-modules:
    Language.Fortran.Analysis
    Language.Fortran.Analysis.Renaming
    Language.Fortran.Analysis.Types
    Language.Fortran.Analysis.BBlocks
    Language.Fortran.Analysis.DataFlow
    Language.Fortran.AST
    Language.Fortran.Lexer.FixedForm
    Language.Fortran.Lexer.FreeForm
    Language.Fortran.ParserMonad
    Language.Fortran.Parser.Any
    Language.Fortran.Parser.Fortran66
    Language.Fortran.Parser.Fortran77
    Language.Fortran.Parser.Fortran90
    Language.Fortran.Transformation.Disambiguation.Function
    Language.Fortran.Transformation.Grouping
    Language.Fortran.Transformation.TransformMonad
    Language.Fortran.Transformer
    Language.Fortran.Util.Position
    Language.Fortran.Util.FirstParameter
    Language.Fortran.Util.SecondParameter
  build-tools:
    alex >= 3.1,
    happy >= 1.19
  build-depends:
    base >= 4.6 && < 5,
    mtl >= 2.2,
    array >= 0.5,
    uniplate >= 1.6,
    GenericPretty >= 1.2,
    pretty >= 1.1,
    containers >= 0.5,
    text >= 1.2,
    bytestring >= 0.10,
    fgl
  hs-source-dirs:      src
  ghc-options: -fno-warn-tabs
  default-language:    Haskell2010

test-suite spec
  type: exitcode-stdio-1.0
  build-depends:
    base >= 4.6 && < 5,
    hspec >= 2.2,
    mtl >= 2.2,
    array >= 0.5,
    uniplate >= 1.6,
    containers >= 0.5,
    text >= 1.2,
    bytestring >= 0.10,
    fgl,
    fortran-src
  hs-source-dirs: test
  main-is: Spec.hs
  default-language:    Haskell2010