From 92917e6e5e17a9c2bee27d33835755516a8b1178 Mon Sep 17 00:00:00 2001 From: krasimir Date: Tue, 22 Apr 2008 08:33:23 +0000 Subject: Use Happy grammar for imports extraction instead of hand made shallow crapy grammar --- src/GF/Compile/GetGrammar.hs | 15 ++++----------- src/GF/Compile/PGrammar.hs | 2 +- 2 files changed, 5 insertions(+), 12 deletions(-) (limited to 'src/GF/Compile') diff --git a/src/GF/Compile/GetGrammar.hs b/src/GF/Compile/GetGrammar.hs index 62826746c..f0cf5d197 100644 --- a/src/GF/Compile/GetGrammar.hs +++ b/src/GF/Compile/GetGrammar.hs @@ -14,8 +14,7 @@ module GF.Compile.GetGrammar ( getSourceModule, getSourceGrammar, - getOldGrammar, getCFGrammar, getEBNFGrammar, - err2err + getOldGrammar, getCFGrammar, getEBNFGrammar ) where import GF.Data.Operations @@ -63,14 +62,14 @@ getSourceModule opts file0 = do Just "utf8" -> decodeUTF8 string0 _ -> string0 let tokens = myLexer (BS.pack string) - mo1 <- ioeErr $ err2err $ pModDef tokens + mo1 <- ioeErr $ pModDef tokens ioeErr $ transModDef mo1 getSourceGrammar :: Options -> FilePath -> IOE SourceGrammar getSourceGrammar opts file = do string <- readFileIOE file let tokens = myLexer (BS.pack string) - gr1 <- ioeErr $ err2err $ pGrammar tokens + gr1 <- ioeErr $ pGrammar tokens ioeErr $ transGrammar gr1 @@ -102,18 +101,12 @@ parseOldGrammar :: FilePath -> IOE ([FilePath],[A.TopDef]) parseOldGrammar file = do putStrLnE $ "reading old file" +++ file s <- ioeIO $ readFileIf file - A.OldGr incl topdefs <- ioeErr $ err2err $ pOldGrammar $ oldLexer $ fixNewlines s + A.OldGr incl topdefs <- ioeErr $ pOldGrammar $ oldLexer $ fixNewlines s includes <- ioeErr $ transInclude incl return (includes, topdefs) ---- -err2err :: E.Err a -> Err a -err2err (E.Ok v) = Ok v -err2err (E.Bad s) = Bad s - -ioeEErr = ioeErr . err2err - -- | To resolve the new reserved words: -- change them by turning the final letter to upper case. --- There is a risk of clash. diff --git a/src/GF/Compile/PGrammar.hs b/src/GF/Compile/PGrammar.hs index e4e60d623..521f616b5 100644 --- a/src/GF/Compile/PGrammar.hs +++ b/src/GF/Compile/PGrammar.hs @@ -33,7 +33,7 @@ import qualified Data.ByteString.Char8 as BS pTerm :: String -> Err Term pTerm s = do - e <- err2err $ pExp $ myLexer (BS.pack s) + e <- pExp $ myLexer (BS.pack s) transExp e pTrm :: String -> Term -- cgit v1.2.3