From 3d5b9bd1fd46a51651cbfbd45f03e5b878aebbac Mon Sep 17 00:00:00 2001 From: hallgren Date: Thu, 19 Sep 2013 18:23:47 +0000 Subject: Make Ident abstract; imports of Data.ByteString.Char8 down from 29 to 16 modules Most of the explicit uses of ByteStrings were eliminated by using identS, identS = identC . BS.pack which was found in GF.Grammar.CF and moved to GF.Infra.Ident. The function prefixIdent :: String -> Ident -> Ident allowed one additional import of ByteString to be eliminated. The functions isArgIdent :: Ident -> Bool getArgIndex :: Ident -> Maybe Int were needed to eliminate explicit pattern matching on Ident from two modules. --- src/compiler/GF/Grammar/Parser.y | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'src/compiler/GF/Grammar/Parser.y') diff --git a/src/compiler/GF/Grammar/Parser.y b/src/compiler/GF/Grammar/Parser.y index 21b45de73..a84db6ffd 100644 --- a/src/compiler/GF/Grammar/Parser.y +++ b/src/compiler/GF/Grammar/Parser.y @@ -16,7 +16,6 @@ import GF.Grammar.Predef import GF.Grammar.Grammar import GF.Grammar.Macros import GF.Grammar.Lexer -import qualified Data.ByteString.Char8 as BS import GF.Compile.Update (buildAnyTree) import Codec.Binary.UTF8.String(decodeString) import Data.Char(toLower) @@ -622,12 +621,9 @@ optDecode opts = else id mkListId,mkConsId,mkBaseId :: Ident -> Ident -mkListId = prefixId (BS.pack "List") -mkConsId = prefixId (BS.pack "Cons") -mkBaseId = prefixId (BS.pack "Base") - -prefixId :: BS.ByteString -> Ident -> Ident -prefixId pref id = identC (BS.append pref (ident2bs id)) +mkListId = prefixIdent "List" +mkConsId = prefixIdent "Cons" +mkBaseId = prefixIdent "Base" listCatDef :: L (Ident, Context, Int) -> [(Ident,Info)] listCatDef (L loc (id,cont,size)) = [catd,nilfund,consfund] -- cgit v1.2.3