mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-03 16:22:52 -06:00
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.
This commit is contained in:
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user