summaryrefslogtreecommitdiff
path: root/src/GF/Compile/GetGrammar.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/GF/Compile/GetGrammar.hs')
-rw-r--r--src/GF/Compile/GetGrammar.hs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/GF/Compile/GetGrammar.hs b/src/GF/Compile/GetGrammar.hs
index 3b9acd9d6..f5698bb9c 100644
--- a/src/GF/Compile/GetGrammar.hs
+++ b/src/GF/Compile/GetGrammar.hs
@@ -16,6 +16,9 @@ import Option
import ParGF
import qualified LexGF as L
+import PPrCF
+import CFtoGrammar
+
import ReadFiles ----
import List (nub)
@@ -81,3 +84,11 @@ oldLexer = map change . L.tokens where
new = words $ "abstract concrete interface incomplete " ++
"instance out open resource reuse transfer union with where"
+getCFGrammar :: Options -> FilePath -> IOE SourceGrammar
+getCFGrammar opts file = do
+ let mo = takeWhile (/='-') file
+ s <- ioeIO $ readFileIf file
+ cf <- ioeErr $ pCF mo file
+ defs <- return $ cf2grammar cf
+ let g = A.OldGr A.NoIncl defs
+ ioeErr $ transOldGrammar opts file g