From 2eaf46f6104d02f25c5a0551af08114dac6b63e9 Mon Sep 17 00:00:00 2001 From: hallgren Date: Thu, 11 Dec 2014 16:08:36 +0000 Subject: Work in progress on translating linearization functions to Haskell The translation is currently good enough to translate all concrete syntaxes of the Foods and Letter grammars, and some concrete syntaxes of the Phrasebook grammar (e.g. PhrasebookEng & PhrasebookSpa works, but there are problems with e.g. PhrasebookSwe and PhrasebookChi) This functionality is enabled by running gf -make -output-format=haskell -haskell=concrete ... TODO: - variants - pre { ... } - eta expansion of linearization functions - record subtyping can still cause type errors in the Haskell code in some cases - reduce code large tables --- src/compiler/GF/Infra/Option.hs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/compiler/GF/Infra') diff --git a/src/compiler/GF/Infra/Option.hs b/src/compiler/GF/Infra/Option.hs index 6bcbe3851..85e02e305 100644 --- a/src/compiler/GF/Infra/Option.hs +++ b/src/compiler/GF/Infra/Option.hs @@ -126,6 +126,7 @@ data CFGTransform = CFGNoLR deriving (Show,Eq,Ord) data HaskellOption = HaskellNoPrefix | HaskellGADT | HaskellLexical + | HaskellConcrete deriving (Show,Eq,Ord) data Warning = WarnMissingLincat @@ -519,7 +520,8 @@ haskellOptionNames :: [(String, HaskellOption)] haskellOptionNames = [("noprefix", HaskellNoPrefix), ("gadt", HaskellGADT), - ("lexical", HaskellLexical)] + ("lexical", HaskellLexical), + ("concrete", HaskellConcrete)] -- | This is for bacward compatibility. Since GHC 6.12 we -- started using the native Unicode support in GHC but it -- cgit v1.2.3