summaryrefslogtreecommitdiff
path: root/src/compiler/GF/Infra/Option.hs
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2015-02-09 16:24:33 +0000
committerhallgren <hallgren@chalmers.se>2015-02-09 16:24:33 +0000
commit8e4e8da105547abec4fe27e837d13bf45d78e31b (patch)
treea86f579081644bb89bad7500febb4313e2b0c871 /src/compiler/GF/Infra/Option.hs
parent3509ee650dc3ec00af3c5039b6ac99bd92f45d7f (diff)
Translating linearization functions to Haskell: support for variants
By adding the flag -haskell=variants to the command line, GF will now generate linearization functions in Haskell that support variants. Variants are represented as lists in Haskell. Variants inside pre { ... } expressions are still ignored. TODO: apply some monad laws to generate more compact code (using an intermediate representation of the generated Haskell code, instead of pretty printing directly from the GF code).
Diffstat (limited to 'src/compiler/GF/Infra/Option.hs')
-rw-r--r--src/compiler/GF/Infra/Option.hs5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/compiler/GF/Infra/Option.hs b/src/compiler/GF/Infra/Option.hs
index 85e02e305..563fb017e 100644
--- a/src/compiler/GF/Infra/Option.hs
+++ b/src/compiler/GF/Infra/Option.hs
@@ -126,7 +126,7 @@ data CFGTransform = CFGNoLR
deriving (Show,Eq,Ord)
data HaskellOption = HaskellNoPrefix | HaskellGADT | HaskellLexical
- | HaskellConcrete
+ | HaskellConcrete | HaskellVariants
deriving (Show,Eq,Ord)
data Warning = WarnMissingLincat
@@ -521,7 +521,8 @@ haskellOptionNames =
[("noprefix", HaskellNoPrefix),
("gadt", HaskellGADT),
("lexical", HaskellLexical),
- ("concrete", HaskellConcrete)]
+ ("concrete", HaskellConcrete),
+ ("variants", HaskellVariants)]
-- | This is for bacward compatibility. Since GHC 6.12 we
-- started using the native Unicode support in GHC but it