summaryrefslogtreecommitdiff
path: root/src/GF
diff options
context:
space:
mode:
authoraarne <unknown>2004-01-21 13:32:08 +0000
committeraarne <unknown>2004-01-21 13:32:08 +0000
commit74e0e1196480231a962fdc23df615628cbd17b7b (patch)
tree01832b144c81e74938af55569a609431a71a81ff /src/GF
parentae9fe52eaace159d650aa32b19fbfa957c1df8c8 (diff)
PredefAbs for bwc
Diffstat (limited to 'src/GF')
-rw-r--r--src/GF/Compile/Rename.hs12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/GF/Compile/Rename.hs b/src/GF/Compile/Rename.hs
index b94cb6fdc..5d5bae2a9 100644
--- a/src/GF/Compile/Rename.hs
+++ b/src/GF/Compile/Rename.hs
@@ -50,10 +50,8 @@ renameIdentTerm :: Status -> Term -> Err Term
renameIdentTerm env@(act,imps) t =
errIn ("atomic term" +++ prt t +++ "given" +++ unwords (map (prt . fst) qualifs)) $
case t of
---- Vr (IC "Int") -> return $ Q cPredefAbs cInt -- Int and String are predefined cats
---- Vr (IC "String") -> return $ Q cPredefAbs cString
Vr c -> do
- f <- lookupTreeMany prt opens c
+ f <- err (predefAbs c) return $ lookupTreeMany prt opens c
return $ f c
Cn c -> do
f <- lookupTreeMany prt opens c
@@ -70,7 +68,13 @@ renameIdentTerm env@(act,imps) t =
where
opens = act : [st | (OSimple _ _,st) <- imps]
qualifs = [(m, st) | (OQualif _ m _, st) <- imps] ++
- [(m, st) | (OSimple _ m, st) <- imps] -- qualifying is always possible
+ [(m, st) | (OSimple _ m, st) <- imps] -- qualif is always possible
+
+ -- this facility is mainly for BWC with GF1: you need not import PredefAbs
+ predefAbs c s = case c of
+ IC "Int" -> return $ const $ Q cPredefAbs cInt
+ IC "String" -> return $ const $ Q cPredefAbs cString
+ _ -> Bad s
--- would it make sense to optimize this by inlining?
renameIdentPatt :: Status -> Patt -> Err Patt