diff options
| author | hallgren <hallgren@chalmers.se> | 2011-08-31 13:55:49 +0000 |
|---|---|---|
| committer | hallgren <hallgren@chalmers.se> | 2011-08-31 13:55:49 +0000 |
| commit | 314abe733ba1e9e7de12c9c28b7d6ffc889d128b (patch) | |
| tree | f56dda4b9f4643bba46ad551ebe193dac11c3a19 /src/compiler/GF/Compile/Coding.hs | |
| parent | d180dadf08ddd961cf2a5db68f90223a7d76c232 (diff) | |
GF.Compile.Coding: cleaner code
Refine function codeTerm into codeTerm, codeLTerm and codeLTerms.
Diffstat (limited to 'src/compiler/GF/Compile/Coding.hs')
| -rw-r--r-- | src/compiler/GF/Compile/Coding.hs | 17 |
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) |
