summaryrefslogtreecommitdiff
path: root/src/compiler/GF/Compile
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2011-08-31 13:55:49 +0000
committerhallgren <hallgren@chalmers.se>2011-08-31 13:55:49 +0000
commit314abe733ba1e9e7de12c9c28b7d6ffc889d128b (patch)
treef56dda4b9f4643bba46ad551ebe193dac11c3a19 /src/compiler/GF/Compile
parentd180dadf08ddd961cf2a5db68f90223a7d76c232 (diff)
GF.Compile.Coding: cleaner code
Refine function codeTerm into codeTerm, codeLTerm and codeLTerms.
Diffstat (limited to 'src/compiler/GF/Compile')
-rw-r--r--src/compiler/GF/Compile/Coding.hs17
1 files changed, 11 insertions, 6 deletions
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)