summaryrefslogtreecommitdiff
path: root/src/GF/Compile/Coding.hs
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2009-08-18 07:08:44 +0000
committerkrasimir <krasimir@chalmers.se>2009-08-18 07:08:44 +0000
commit3ee04cc42d0506641c4d8c6b2266972c20522811 (patch)
tree140f59d770a0592ba8a56fe8bec4b43b434ec11e /src/GF/Compile/Coding.hs
parentacb930a34915894543472b4e639148b7d7f895b0 (diff)
fix the unicode encoding problem with the cc command
Diffstat (limited to 'src/GF/Compile/Coding.hs')
-rw-r--r--src/GF/Compile/Coding.hs17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/GF/Compile/Coding.hs b/src/GF/Compile/Coding.hs
index 0891c4546..c871f16a3 100644
--- a/src/GF/Compile/Coding.hs
+++ b/src/GF/Compile/Coding.hs
@@ -19,15 +19,18 @@ codeSourceModule :: (String -> String) -> SourceModule -> SourceModule
codeSourceModule co (id,mo) = (id,replaceJudgements mo (mapTree codj (jments mo)))
where
codj (c,info) = case info of
- ResOper pty pt -> ResOper (fmap codt pty) (fmap codt pt)
- ResOverload es tyts -> ResOverload es [(codt ty,codt t) | (ty,t) <- tyts]
- CncCat pty pt mpr -> CncCat pty (fmap codt pt) (fmap codt mpr)
- CncFun mty pt mpr -> CncFun mty (fmap codt pt) (fmap codt mpr)
+ ResOper pty pt -> ResOper (fmap (codeTerm co) pty) (fmap (codeTerm co) pt)
+ ResOverload es tyts -> ResOverload es [(codeTerm co ty,codeTerm co t) | (ty,t) <- tyts]
+ CncCat pty pt mpr -> CncCat pty (fmap (codeTerm co) pt) (fmap (codeTerm co) mpr)
+ CncFun mty pt mpr -> CncFun mty (fmap (codeTerm co) pt) (fmap (codeTerm co) mpr)
_ -> info
- codt t = case t of
+
+codeTerm :: (String -> String) -> Term -> Term
+codeTerm co t = case t of
K s -> K (co s)
- T ty cs -> T ty [(codp p,codt v) | (p,v) <- cs]
- _ -> composSafeOp codt t
+ T ty cs -> T ty [(codp p,codeTerm co v) | (p,v) <- cs]
+ _ -> composSafeOp (codeTerm co) t
+ where
codp p = case p of --- really: composOpPatt
PR rs -> PR [(l,codp p) | (l,p) <- rs]
PString s -> PString (co s)