From 314abe733ba1e9e7de12c9c28b7d6ffc889d128b Mon Sep 17 00:00:00 2001 From: hallgren Date: Wed, 31 Aug 2011 13:55:49 +0000 Subject: GF.Compile.Coding: cleaner code Refine function codeTerm into codeTerm, codeLTerm and codeLTerms. --- src/compiler/GF/Compile/Coding.hs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'src/compiler/GF/Compile') diff --git a/src/compiler/GF/Compile/Coding.hs b/src/compiler/GF/Compile/Coding.hs index 01285eef1..e7c90b850 100644 --- a/src/compiler/GF/Compile/Coding.hs +++ b/src/compiler/GF/Compile/Coding.hs @@ -21,14 +21,19 @@ 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 (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) + ResOper pty pt -> ResOper (codeLTerms co pty) (codeLTerms co pt) + ResOverload es tyts -> ResOverload es [(codeLTerm co ty,codeLTerm co t) | (ty,t) <- tyts] + CncCat pty pt mpr -> CncCat pty (codeLTerms co pt) (codeLTerms co mpr) + CncFun mty pt mpr -> CncFun mty (codeLTerms co pt) (codeLTerms co mpr) _ -> info -codeTerm :: (String -> String) -> L Term -> L Term -codeTerm co (L loc t) = L loc (codt t) +codeLTerms co = fmap (codeLTerm co) + +codeLTerm :: (String -> String) -> L Term -> L Term +codeLTerm = fmap . codeTerm + +codeTerm :: (String -> String) -> Term -> Term +codeTerm co = codt where codt t = case t of K s -> K (co s) -- cgit v1.2.3