From 33a42b1c7ca74fd4484fd143b5396d61fa924eb7 Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 20 Sep 2011 16:00:56 +0000 Subject: module for analysing source grammars --- src/compiler/GF/Grammar/Analyse.hs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/compiler/GF/Grammar/Analyse.hs (limited to 'src/compiler/GF/Grammar/Analyse.hs') diff --git a/src/compiler/GF/Grammar/Analyse.hs b/src/compiler/GF/Grammar/Analyse.hs new file mode 100644 index 000000000..ad538de87 --- /dev/null +++ b/src/compiler/GF/Grammar/Analyse.hs @@ -0,0 +1,29 @@ +module GF.Grammar.Analyse ( + stripSourceGrammar + ) where + +import GF.Grammar.Grammar +import GF.Infra.Ident +import GF.Infra.Option --- +import GF.Infra.Modules + +import GF.Data.Operations + +import qualified Data.Map as Map + + +stripSourceGrammar :: SourceGrammar -> SourceGrammar +stripSourceGrammar sgr = mGrammar [(i, m{jments = Map.map stripInfo (jments m)}) | (i,m) <- modules sgr] + +stripInfo :: Info -> Info +stripInfo i = case i of + AbsCat _ -> i + AbsFun mt mi me mb -> AbsFun mt mi Nothing mb + ResParam mp mt -> ResParam mp Nothing + ResValue lt -> i ---- + ResOper mt md -> ResOper mt Nothing + ResOverload is fs -> ResOverload is [(lty, L loc (EInt 0)) | (lty,L loc _) <- fs] + CncCat mty mte mtf -> CncCat mty Nothing Nothing + CncFun mict mte mtf -> CncFun mict Nothing Nothing + AnyInd b f -> i + -- cgit v1.2.3