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