packages feed

oberon0-0.0.2: oberon0.cabal

cabal-version: >= 1.8
build-type: Custom
name: oberon0
version: 0.0.2
license: LGPL
license-file: LICENSE-LGPL
maintainer: Marcos Viera <mviera@fing.edu.uy>
description: Oberon0 compiler (from LDTA 2011 challenge) implementation using CoCoCo
homepage: http://www.cs.uu.nl/wiki/Center/CoCoCo
synopsis: Oberon0 Compiler
category: Language
stability: Experimental
author: Marcos Viera 
tested-with: GHC >= 7.4.1

Flag l1
        description:  Oberon-0
        default:      False

Flag l2
        description:  l1 + FOR + CASE
        default:      False

Flag l3
        description:  l2 + procedures
        default:      False

Flag l4
        description:  l3 + arrays and records
        default:      False

Flag t1
        description:  pretty-printing
        default:      False

Flag t2
        description:  with errors
        default:      False

Flag t3
        description:  type-checking
        default:      False

Flag t5
        description:  code generation
        default:      False



library
                build-depends: base >= 4, base < 5, ghc-prim >= 0.2.0.0, template-haskell
                build-depends: containers >= 0.4, transformers >= 0.2.2.0, mtl >= 2.0.1.0, array >= 0.3.0.3
                build-depends: uulib >= 0.9.14, uu-parsinglib >= 2.7.3.4 
                build-depends: murder >= 1.3.2
                build-depends: AspectAG >= 0.3.6.1
                build-depends: HList >= 0.2.3
                extensions: TemplateHaskell, EmptyDataDecls, NoMonomorphismRestriction, Arrows, RecursiveDo, 
                            TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances
                ghc-options: -fcontext-stack=1000
                hs-source-dirs: src

                if flag(t1) || flag(t2) || flag(t3) || flag(t5)
                  exposed-modules: Language.Oberon0.MainT1

                if flag(t2) || flag(t3) || flag(t5)
                  exposed-modules: Language.Oberon0.MainT2

                if flag(t5)
                  exposed-modules: Language.Oberon0.MainT5
                  build-depends: language-c >= 0.4.2

                if flag(l1) || flag(l2) || flag(l3) || flag(l4)
                  exposed-modules: Language.Oberon0.L1.Decl, Language.Oberon0.L1.Gram
                  if flag(t1) || flag(t2) || flag(t3) || flag(t5)
                    exposed-modules: Language.Oberon0.L1.SemT1
                  if flag(t2) || flag(t3) || flag(t5)
                    exposed-modules: Language.Oberon0.L1.SemT2
                  if flag(t3) || flag(t5)
                    exposed-modules: Language.Oberon0.L1.SemT3
                  if flag(t5)
                    exposed-modules: Language.Oberon0.L1.SemT5

                if flag(l2) || flag(l3) || flag(l4)
                  exposed-modules: Language.Oberon0.L2.Decl, Language.Oberon0.L2.Gram
                  if flag(t1) || flag(t2) || flag(t3) || flag(t5)
                    exposed-modules: Language.Oberon0.L2.SemT1
                  if flag(t2) || flag(t3) || flag(t5)
                    exposed-modules: Language.Oberon0.L2.SemT2
                  if flag(t3) || flag(t5)
                    exposed-modules: Language.Oberon0.L2.SemT3
                  if flag(t5)
                    exposed-modules: Language.Oberon0.L2.SemT5

                if flag(l3) || flag(l4)
                  exposed-modules: Language.Oberon0.L3.Decl, Language.Oberon0.L3.Gram
                  if flag(t1) || flag(t2) || flag(t3) || flag(t5)
                    exposed-modules: Language.Oberon0.L3.SemT1
                  if flag(t2) || flag(t3) || flag(t5)
                    exposed-modules: Language.Oberon0.L3.SemT2
                  if flag(t3) || flag(t5)
                    exposed-modules: Language.Oberon0.L3.SemT3
                  if flag(t5)
                    exposed-modules: Language.Oberon0.L3.SemT5

                if flag(l4)
                  exposed-modules: Language.Oberon0.L4.Decl, Language.Oberon0.L4.Gram
                  if flag(t1) || flag(t2) || flag(t3) || flag(t5)
                    exposed-modules: Language.Oberon0.L4.SemT1
                  if flag(t2) || flag(t3) || flag(t5)
                    exposed-modules: Language.Oberon0.L4.SemT2
                  if flag(t3) || flag(t5)
                    exposed-modules: Language.Oberon0.L4.SemT3
                  if flag(t5)
                    exposed-modules: Language.Oberon0.L4.SemT5



executable l1t1
                build-depends: oberon0
                build-depends: base >= 4, base < 5
                build-depends: AspectAG >= 0.3.6.1
                build-depends: murder >= 1.3.2
                build-depends: uulib >= 0.9.14, uu-parsinglib >= 2.7.3.4 
                build-depends: HList >= 0.2.3
                extensions: TemplateHaskell, EmptyDataDecls, NoMonomorphismRestriction, Arrows, RecursiveDo, 
                            TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances
                main-is: src/Language/Oberon0/L1/T1.hs
                if !(flag(l1) && flag(t1))
                  buildable: False


executable l1t2
                build-depends: oberon0
                build-depends: base >= 4, base < 5
                build-depends: containers >= 0.4
                build-depends: AspectAG >= 0.3.6.1
                build-depends: murder >= 1.3.2
                build-depends: uulib >= 0.9.14, uu-parsinglib >= 2.7.3.4 
                build-depends: HList >= 0.2.3
                extensions: TemplateHaskell, EmptyDataDecls, NoMonomorphismRestriction, Arrows, RecursiveDo, 
                            TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances
                main-is: src/Language/Oberon0/L1/T2.hs
                if !(flag(l1) && flag(t2))
                  buildable: False


executable l1t3
                build-depends: oberon0
                build-depends: base >= 4, base < 5
                build-depends: containers >= 0.4
                build-depends: AspectAG >= 0.3.6.1
                build-depends: murder >= 1.3.2
                build-depends: uulib >= 0.9.14, uu-parsinglib >= 2.7.3.4 
                build-depends: HList >= 0.2.3
                extensions: TemplateHaskell, EmptyDataDecls, NoMonomorphismRestriction, Arrows, RecursiveDo, 
                            TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances
                main-is: src/Language/Oberon0/L1/T3.hs
                if !(flag(l1) && flag(t3))
                  buildable: False


executable l1t5
                build-depends: oberon0
                build-depends: base >= 4, base < 5
                build-depends: containers >= 0.4
                build-depends: AspectAG >= 0.3.6.1
                build-depends: murder >= 1.3.2
                build-depends: uulib >= 0.9.14, uu-parsinglib >= 2.7.3.4 
                build-depends: HList >= 0.2.3
                build-depends: language-c >= 0.4.2
                extensions: TemplateHaskell, EmptyDataDecls, NoMonomorphismRestriction, Arrows, RecursiveDo, 
                            TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances
                main-is: src/Language/Oberon0/L1/T5.hs
                if !(flag(l1) && flag(t5))
                  buildable: False




executable l2t1
                build-depends: oberon0
                build-depends: base >= 4, base < 5
                build-depends: AspectAG >= 0.3.6.1
                build-depends: murder >= 1.3.2
                build-depends: uulib >= 0.9.14, uu-parsinglib >= 2.7.3.4 
                build-depends: HList >= 0.2.3
                extensions: TemplateHaskell, EmptyDataDecls, NoMonomorphismRestriction, Arrows, RecursiveDo, 
                            TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances
                main-is: src/Language/Oberon0/L2/T1.hs
                if !(flag(l2) && flag(t1))
                  buildable: False


executable l2t2
                build-depends: oberon0
                build-depends: base >= 4, base < 5
                build-depends: containers >= 0.4
                build-depends: AspectAG >= 0.3.6.1
                build-depends: murder >= 1.3.2
                build-depends: uulib >= 0.9.14, uu-parsinglib >= 2.7.3.4 
                build-depends: HList >= 0.2.3
                extensions: TemplateHaskell, EmptyDataDecls, NoMonomorphismRestriction, Arrows, RecursiveDo, 
                            TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances
                main-is: src/Language/Oberon0/L2/T2.hs
                if !(flag(l2) && flag(t2))
                  buildable: False

executable l2t3
                build-depends: oberon0
                build-depends: base >= 4, base < 5
                build-depends: containers >= 0.4
                build-depends: AspectAG >= 0.3.6.1
                build-depends: murder >= 1.3.2
                build-depends: uulib >= 0.9.14, uu-parsinglib >= 2.7.3.4 
                build-depends: HList >= 0.2.3
                extensions: TemplateHaskell, EmptyDataDecls, NoMonomorphismRestriction, Arrows, RecursiveDo, 
                            TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances
                main-is: src/Language/Oberon0/L2/T3.hs
                if !(flag(l2) && flag(t3))
                  buildable: False


executable l2t5
                build-depends: oberon0
                build-depends: base >= 4, base < 5
                build-depends: containers >= 0.4
                build-depends: AspectAG >= 0.3.6.1
                build-depends: murder >= 1.3.2
                build-depends: uulib >= 0.9.14, uu-parsinglib >= 2.7.3.4 
                build-depends: HList >= 0.2.3
                build-depends: language-c >= 0.4.2
                extensions: TemplateHaskell, EmptyDataDecls, NoMonomorphismRestriction, Arrows, RecursiveDo, 
                            TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances
                main-is: src/Language/Oberon0/L2/T5.hs
                if !(flag(l2) && flag(t5))
                  buildable: False



executable l3t1
                build-depends: oberon0
                build-depends: base >= 4, base < 5
                build-depends: AspectAG >= 0.3.6.1
                build-depends: murder >= 1.3.2
                build-depends: uulib >= 0.9.14, uu-parsinglib >= 2.7.3.4 
                build-depends: HList >= 0.2.3
                extensions: TemplateHaskell, EmptyDataDecls, NoMonomorphismRestriction, Arrows, RecursiveDo, 
                            TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances
                main-is: src/Language/Oberon0/L3/T1.hs
                if !(flag(l3) && flag(t1))
                  buildable: False

executable l3t2
                build-depends: oberon0
                build-depends: base >= 4, base < 5
                build-depends: containers >= 0.4
                build-depends: AspectAG >= 0.3.6.1
                build-depends: murder >= 1.3.2
                build-depends: uulib >= 0.9.14, uu-parsinglib >= 2.7.3.4 
                build-depends: HList >= 0.2.3
                extensions: TemplateHaskell, EmptyDataDecls, NoMonomorphismRestriction, Arrows, RecursiveDo, 
                            TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances
                main-is: src/Language/Oberon0/L3/T2.hs
                if !(flag(l3) && flag(t2))
                  buildable: False

executable l3t3
                build-depends: oberon0
                build-depends: base >= 4, base < 5
                build-depends: containers >= 0.4
                build-depends: AspectAG >= 0.3.6.1
                build-depends: murder >= 1.3.2
                build-depends: uulib >= 0.9.14, uu-parsinglib >= 2.7.3.4 
                build-depends: HList >= 0.2.3
                extensions: TemplateHaskell, EmptyDataDecls, NoMonomorphismRestriction, Arrows, RecursiveDo, 
                            TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances
                main-is: src/Language/Oberon0/L3/T3.hs
                if !(flag(l3) && flag(t3))
                  buildable: False


executable l3t5
                build-depends: oberon0
                build-depends: base >= 4, base < 5
                build-depends: containers >= 0.4
                build-depends: AspectAG >= 0.3.6.1
                build-depends: murder >= 1.3.2
                build-depends: uulib >= 0.9.14, uu-parsinglib >= 2.7.3.4 
                build-depends: HList >= 0.2.3
                build-depends: language-c >= 0.4.2
                extensions: TemplateHaskell, EmptyDataDecls, NoMonomorphismRestriction, Arrows, RecursiveDo, 
                            TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances
                main-is: src/Language/Oberon0/L3/T5.hs
                if !(flag(l3) && flag(t5))
                  buildable: False





executable l4t1
                build-depends: oberon0
                build-depends: base >= 4, base < 5
                build-depends: AspectAG >= 0.3.6.1
                build-depends: murder >= 1.3.2
                build-depends: uulib >= 0.9.14, uu-parsinglib >= 2.7.3.4 
                build-depends: HList >= 0.2.3
                extensions: TemplateHaskell, EmptyDataDecls, NoMonomorphismRestriction, Arrows, RecursiveDo, 
                            TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances
                main-is: src/Language/Oberon0/L4/T1.hs
                if !(flag(l4) && flag(t1))
                  buildable: False



executable l4t2
                build-depends: oberon0
                build-depends: base >= 4, base < 5
                build-depends: containers >= 0.4
                build-depends: AspectAG >= 0.3.6.1
                build-depends: murder >= 1.3.2
                build-depends: uulib >= 0.9.14, uu-parsinglib >= 2.7.3.4 
                build-depends: HList >= 0.2.3
                extensions: TemplateHaskell, EmptyDataDecls, NoMonomorphismRestriction, Arrows, RecursiveDo, 
                            TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances
                main-is: src/Language/Oberon0/L4/T2.hs
                if !(flag(l4) && flag(t2))
                  buildable: False


executable l4t3
                build-depends: oberon0
                build-depends: base >= 4, base < 5
                build-depends: containers >= 0.4
                build-depends: AspectAG >= 0.3.6.1
                build-depends: murder >= 1.3.2
                build-depends: uulib >= 0.9.14, uu-parsinglib >= 2.7.3.4 
                build-depends: HList >= 0.2.3
                extensions: TemplateHaskell, EmptyDataDecls, NoMonomorphismRestriction, Arrows, RecursiveDo, 
                            TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances
                main-is: src/Language/Oberon0/L4/T3.hs
                if !(flag(l4) && flag(t3))
                  buildable: False


executable l4t5
                build-depends: oberon0
                build-depends: base >= 4, base < 5
                build-depends: containers >= 0.4
                build-depends: AspectAG >= 0.3.6.1
                build-depends: murder >= 1.3.2
                build-depends: uulib >= 0.9.14, uu-parsinglib >= 2.7.3.4 
                build-depends: HList >= 0.2.3
                build-depends: language-c >= 0.4.2
                extensions: TemplateHaskell, EmptyDataDecls, NoMonomorphismRestriction, Arrows, RecursiveDo, 
                            TypeSynonymInstances, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances
                main-is: src/Language/Oberon0/L4/T5.hs
                if !(flag(l4) && flag(t5))
                  buildable: False