diff options
| author | peb <peb@cs.chalmers.se> | 2006-01-13 08:42:25 +0000 |
|---|---|---|
| committer | peb <peb@cs.chalmers.se> | 2006-01-13 08:42:25 +0000 |
| commit | acd24331af16964c6f3dad549ce43e44130b1284 (patch) | |
| tree | 857123cbe46d725e402d63585eb486dd184a1309 /src/GF/Conversion/GFC.hs | |
| parent | 7752543f042b555bc87d57c3c3dcbfb15f2132c3 (diff) | |
peb
Diffstat (limited to 'src/GF/Conversion/GFC.hs')
| -rw-r--r-- | src/GF/Conversion/GFC.hs | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/GF/Conversion/GFC.hs b/src/GF/Conversion/GFC.hs index 0975d552a..e4a5ef298 100644 --- a/src/GF/Conversion/GFC.hs +++ b/src/GF/Conversion/GFC.hs @@ -46,19 +46,29 @@ convertGFC opts = \g -> let s = g2s g in trace2 "Options" (show opts) (s, (e, (e2m e, e2c e))) where e2c = M2C.convertGrammar e2m = case getOptVal opts firstCat of - Just cat -> flip RemEra.convertGrammar [identC cat] - Nothing -> flip RemEra.convertGrammar [] + Just cat -> flip erasing [identC cat] + Nothing -> flip erasing [] s2e = case getOptVal opts gfcConversion of - Just "strict" -> S2M.convertGrammarStrict - Just "finite-strict" -> S2M.convertGrammarStrict - Just "epsilon" -> RemEps.convertGrammar . S2M.convertGrammarNondet - _ -> S2M.convertGrammarNondet + Just "strict" -> strict + Just "finite-strict" -> strict + Just "epsilon" -> epsilon . nondet + _ -> nondet g2s = case getOptVal opts gfcConversion of - Just "finite" -> S2Fin.convertGrammar . G2S.convertGrammar - Just "singletons" -> RemSing.convertGrammar . G2S.convertGrammar - Just "finite-singletons" -> RemSing.convertGrammar . S2Fin.convertGrammar . G2S.convertGrammar - Just "finite-strict" -> S2Fin.convertGrammar . G2S.convertGrammar - _ -> G2S.convertGrammar + Just "finite" -> finite . simple + Just "finite2" -> finite . finite . simple + Just "finite3" -> finite . finite . finite . simple + Just "singletons" -> single . simple + Just "finite-singletons" -> single . finite . simple + Just "finite-strict" -> finite . simple + _ -> simple + + simple = G2S.convertGrammar + strict = S2M.convertGrammarStrict + nondet = S2M.convertGrammarNondet + epsilon = RemEps.convertGrammar + finite = S2Fin.convertGrammar + single = RemSing.convertGrammar + erasing = RemEra.convertGrammar gfc2simple :: Options -> (CanonGrammar, Ident) -> SGrammar gfc2simple opts = fst . convertGFC opts |
