X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=utils%2Fext-core%2FParseGlue.hs;h=7335656b17eaeaca2b470d87a2ba18fc4c786c86;hp=9bd3c4f7eb9a58146ca9882c6ac1aee1df235c51;hb=6b085eeada6c3c93599fa4b6d77572abc419c08c;hpb=87c93cf56c83abf0148c91d5972dbe65dc72c38a diff --git a/utils/ext-core/ParseGlue.hs b/utils/ext-core/ParseGlue.hs index 9bd3c4f..7335656 100644 --- a/utils/ext-core/ParseGlue.hs +++ b/utils/ext-core/ParseGlue.hs @@ -1,8 +1,16 @@ module ParseGlue where +import Encoding + +import Data.List + data ParseResult a = OkP a | FailP String type P a = String -> Int -> ParseResult a +instance Show a => Show (ParseResult a) + where show (OkP r) = show r + show (FailP s) = s + thenP :: P a -> (a -> P b) -> P b m `thenP` k = \ s l -> case m s l of @@ -53,7 +61,13 @@ data Token = | TKchar Char | TKEOF - +-- ugh +splitModuleName mn = + let decoded = zDecodeString mn + parts = filter (notElem '.') $ groupBy + (\ c1 c2 -> c1 /= '.' && c2 /= '.') + decoded in + (take (length parts - 1) parts, last parts)