diff options
| author | krasimir <krasimir@chalmers.se> | 2009-08-18 07:08:44 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2009-08-18 07:08:44 +0000 |
| commit | 3ee04cc42d0506641c4d8c6b2266972c20522811 (patch) | |
| tree | 140f59d770a0592ba8a56fe8bec4b43b434ec11e /src/GF/Compile | |
| parent | acb930a34915894543472b4e639148b7d7f895b0 (diff) | |
fix the unicode encoding problem with the cc command
Diffstat (limited to 'src/GF/Compile')
| -rw-r--r-- | src/GF/Compile/Coding.hs | 17 |
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) |
