summaryrefslogtreecommitdiff
path: root/src/compiler/GF/Compile/PMCFGTestHooks.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/GF/Compile/PMCFGTestHooks.hs')
-rw-r--r--src/compiler/GF/Compile/PMCFGTestHooks.hs43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/compiler/GF/Compile/PMCFGTestHooks.hs b/src/compiler/GF/Compile/PMCFGTestHooks.hs
new file mode 100644
index 000000000..e8014107e
--- /dev/null
+++ b/src/compiler/GF/Compile/PMCFGTestHooks.hs
@@ -0,0 +1,43 @@
+module GF.Compile.PMCFGTestHooks
+ ( TestSchema(..)
+ , TestProduction(..)
+ , PMCFGResults(..)
+ , getFIdsPre
+ , getFIdsOptimized
+ , getFIdsOptimizedCached
+ , getSingleFIdPre
+ , getSingleFIdOptimized
+ , pmcfgResults
+ ) where
+
+import GF.Compile.PMCFGTestTypes
+import GF.Grammar (FId, PMCFG)
+import qualified GF.Compile.GeneratePMCFG as Optimized
+import qualified GF.Compile.GeneratePmcfgPre as Pre
+
+data PMCFGResults = PMCFGResults
+ { pmcfgPre :: PMCFG
+ , pmcfgOptimized :: PMCFG
+ } deriving (Eq, Show)
+
+getFIdsPre :: TestSchema -> [FId]
+getFIdsPre = Pre.pmcfgTestGetFIds
+
+getFIdsOptimized :: TestSchema -> [FId]
+getFIdsOptimized = Optimized.pmcfgTestGetFIds
+
+getFIdsOptimizedCached :: TestSchema -> ([FId], [FId])
+getFIdsOptimizedCached = Optimized.pmcfgTestGetFIdsCached
+
+getSingleFIdPre :: TestSchema -> FId
+getSingleFIdPre = Pre.pmcfgTestGetSingleFId
+
+getSingleFIdOptimized :: TestSchema -> FId
+getSingleFIdOptimized = Optimized.pmcfgTestGetSingleFId
+
+pmcfgResults :: [TestProduction] -> PMCFGResults
+pmcfgResults prods =
+ PMCFGResults
+ { pmcfgPre = Pre.pmcfgTestBuildPMCFG prods
+ , pmcfgOptimized = Optimized.pmcfgTestBuildPMCFG prods
+ }