From 0ab4d209650b44b019a414a6cefd0f4cbc006ee4 Mon Sep 17 00:00:00 2001 From: "simonpj@microsoft.com" Date: Fri, 22 Feb 2008 18:23:05 +0000 Subject: [PATCH] Add type sigs and minor refactoring --- compiler/main/DynFlags.hs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs index ed5f359..39459d3 100644 --- a/compiler/main/DynFlags.hs +++ b/compiler/main/DynFlags.hs @@ -1478,26 +1478,31 @@ setDumpSimplPhases :: String -> DynP () setDumpSimplPhases s = do setDynFlag Opt_ForceRecomp upd (\s -> s { shouldDumpSimplPhase = spec }) where + spec :: SimplifierMode -> Bool spec = join (||) - . map (join (&&)) - . map (map match) - . map (split ':') + . map (join (&&) . map match . split ':') . split ',' $ case s of '=' : s' -> s' _ -> s + join :: (Bool -> Bool -> Bool) + -> [SimplifierMode -> Bool] + -> SimplifierMode -> Bool join _ [] = const True join op ss = foldr1 (\f g x -> f x `op` g x) ss + match :: String -> SimplifierMode -> Bool match "" = const True match s = case reads s of [(n,"")] -> phase_num n _ -> phase_name s + phase_num :: Int -> SimplifierMode -> Bool phase_num n (SimplPhase k _) = n == k phase_num _ _ = False + phase_name :: String -> SimplifierMode -> Bool phase_name s SimplGently = s == "gentle" phase_name s (SimplPhase _ ss) = s `elem` ss -- 1.7.10.4