-----------------------------------------------------------------------------
--- $Id: DriverFlags.hs,v 1.119 2003/08/11 08:53:39 simonmar Exp $
+-- $Id: DriverFlags.hs,v 1.120 2003/08/20 15:07:56 simonmar Exp $
--
-- Driver flags
--
findArg spec arg
= case [ (remove_spaces rest, k)
| (pat,k) <- spec,
- Just rest <- [my_prefix_match pat arg],
+ Just rest <- [maybePrefixMatch pat arg],
arg_ok k rest arg ]
of
[] -> Nothing
-----------------------------------------------------------------------------
--- $Id: DriverUtil.hs,v 1.38 2003/06/04 15:47:59 simonmar Exp $
+-- $Id: DriverUtil.hs,v 1.39 2003/08/20 15:07:57 simonmar Exp $
--
-- Utils for the driver
--
| otherwise -> return []
matchOptions s
- | Just s1 <- my_prefix_match "{-#" s, -- -}
- Just s2 <- my_prefix_match "OPTIONS" (remove_spaces s1),
- Just s3 <- my_prefix_match "}-#" (reverse s2)
+ | Just s1 <- maybePrefixMatch "{-#" s, -- -}
+ Just s2 <- maybePrefixMatch "OPTIONS" (remove_spaces s1),
+ Just s3 <- maybePrefixMatch "}-#" (reverse s2)
= Just (reverse s3)
| otherwise
= Nothing
Nothing -> (bs,a:cs)
Just b -> ((a,b):bs,cs)
-my_prefix_match :: String -> String -> Maybe String
-my_prefix_match [] rest = Just rest
-my_prefix_match (_:_) [] = Nothing
-my_prefix_match (p:pat) (r:rest)
- | p == r = my_prefix_match pat rest
- | otherwise = Nothing
-
later = flip finally
handleDyn :: Typeable ex => (ex -> IO a) -> IO a -> IO a
let mod_basename = dots_to_slashes (moduleNameUserString mod_name)
(basename,extension) = splitFilename src_filename
- case my_prefix_match (reverse mod_basename) (reverse basename) of
+ case maybePrefixMatch (reverse mod_basename) (reverse basename) of
Just "" ->
mkHomeModLocationSearched mod_name "." mod_basename extension
Just rest -> do