-- Package Stanza
Name:           hburg
Version:        1.1.2
License:        BSD3
License-file:   LICENSE
Author:         Igor Boehm <igor@bytelabs.org>
Maintainer:     igor@bytelabs.org
Homepage:       http://www.bytelabs.org/hburg.html
Category:       Code Generation
Synopsis:       Haskell Bottom Up Rewrite Generator
Description:
    HBURG is a program that generates tree parsers for cost-augmented
    tree grammars. It is useful for writing code generators for compilers.
    Given a mapping of a tree structured intermediate representation onto
    target machine instructions, HBURG generates a code generator that can
    be plugged into the instruction selection phase of a compiler. For more
    information see "http://www.bytelabs.org/pub/papers/hburg07.pdf".
Stability:      Experimental
cabal-version: >=1.2
build-type: Simple
extra-source-files:
    TODO
    test/01-grammar.tpg
    test/02-grammar.tpg
    test/03-grammar.tpg
    test/04-grammar.tpg
    test/05-grammar.tpg
    test/06-grammar.tpg
    test/07-grammar.tpg
    test/08-cisc.tpg
    test/09-risc.tpg
    test/errors/err-dupbindings.tpg
    test/errors/err-many-many-errors.tpg
    test/errors/err-manyundefined.tpg
    test/errors/err-selfredef.tpg
    test/errors/err-typerror1.tpg
    test/errors/err-typerror2.tpg
    test/errors/err-typerror3.tpg
    test/errors/err-useundefined.tpg
    test/errors/err-varyingparams.tpg

flag small_base
  description: Choose the new smaller, split-up base package.

executable hburg
    executable: hburg
    main-is: Main.hs
    hs-source-dirs: src

    if flag(small_base)
      build-depends: base >= 3, containers, array
    else
      build-depends: base >= 1.0

    build-depends: haskell98 >= 1.0, filepath, mtl, pretty

  other-modules:
      Hburg.Ast.Attr
      Hburg.Ast.Bind
      Hburg.Ast.Closure
      Hburg.Ast.Code
      Hburg.Ast.Cost
      Hburg.Ast.Decl
      Hburg.Ast.Def
      Hburg.Ast.Ident
      Hburg.Ast.Incl
      Hburg.Ast.Ir
      Hburg.Ast.Node
      Hburg.Ast.Nt
      Hburg.Ast.Op
      Hburg.Ast.Prod
      Hburg.Ast.T
      Hburg.Ast.Term
      Hburg.Csa.Csa
      Hburg.Csa.Ctx
      Hburg.Csa.Elem
      Hburg.Debug
      Hburg.Gen.Backend
      Hburg.Gen.Doc
      Hburg.Gen.Emit
      Hburg.Gen.Ident
      Hburg.Gen.Java.Class
      Hburg.Gen.Java.Enum
      Hburg.Gen.Java.Eval
      Hburg.Gen.Java.Gen
      Hburg.Gen.Java.Method
      Hburg.Gen.Java.Modifier
      Hburg.Gen.Java.Param
      Hburg.Gen.Java.Tile
      Hburg.Gen.Java.Var
      Hburg.Gen.Label
      Hburg.Parse.Lexer
      Hburg.Parse.Msg
      Hburg.Parse.Parser
      Hburg.Util

  Extensions:
      GADTs
  ghc-options:
      -funbox-strict-fields 
      -fwarn-unused-imports 
      -fwarn-duplicate-exports 
      -fwarn-incomplete-patterns 
      -fwarn-overlapping-patterns
