From fb8bf8536a4b72b59cb7a3fc26c5787f3b80348d Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Sat, 8 Nov 2008 14:34:23 +0000 Subject: [PATCH] Remove the GHC 6.4 unicode compat stuff; we can now just use Data.Char --- compiler/cbits/unicode.c | 5 ---- compiler/ghc.cabal.in | 3 -- compiler/parser/Lexer.x | 4 +-- compiler/utils/Unicode.hs | 69 --------------------------------------------- 4 files changed, 1 insertion(+), 80 deletions(-) delete mode 100644 compiler/cbits/unicode.c delete mode 100644 compiler/utils/Unicode.hs diff --git a/compiler/cbits/unicode.c b/compiler/cbits/unicode.c deleted file mode 100644 index c239e21..0000000 --- a/compiler/cbits/unicode.c +++ /dev/null @@ -1,5 +0,0 @@ -#if __GLASGOW_HASKELL__ < 605 -#if __GLASGOW_HASKELL__ != 604 || __GHC_PATCHLEVEL__ == 0 -#include "WCsubst.c" -#endif -#endif diff --git a/compiler/ghc.cabal.in b/compiler/ghc.cabal.in index 3cd35d2..51d7bbc 100644 --- a/compiler/ghc.cabal.in +++ b/compiler/ghc.cabal.in @@ -109,8 +109,6 @@ Library c-sources: parser/cutils.c utils/md5.c - -- For GHC < 6.5: - cbits/unicode.c if flag(dynlibs) c-sources: @@ -422,7 +420,6 @@ Library Serialized State StringBuffer - Unicode UniqFM UniqSet Util diff --git a/compiler/parser/Lexer.x b/compiler/parser/Lexer.x index 0dd36ff..952196a 100644 --- a/compiler/parser/Lexer.x +++ b/compiler/parser/Lexer.x @@ -70,11 +70,9 @@ import Util ( maybePrefixMatch, readRational ) import Control.Monad import Data.Bits -import Data.Char ( chr, ord, isSpace ) +import Data.Char import Data.Ratio import Debug.Trace - -import Unicode ( GeneralCategory(..), generalCategory, isPrint, isUpper ) } $unispace = \x05 -- Trick Alex into handling Unicode. See alexGetChar. diff --git a/compiler/utils/Unicode.hs b/compiler/utils/Unicode.hs deleted file mode 100644 index c12dc46..0000000 --- a/compiler/utils/Unicode.hs +++ /dev/null @@ -1,69 +0,0 @@ -{-# OPTIONS -cpp #-} -module Unicode ( - GeneralCategory(..), generalCategory, isPrint, isUpper - ) where - -#if __GLASGOW_HASKELL__ > 604 - -import Data.Char (GeneralCategory(..), generalCategory,isPrint,isUpper) - -#else - -import Foreign.C ( CInt ) -import Data.Char ( ord ) - --- | Unicode General Categories (column 2 of the UnicodeData table) --- in the order they are listed in the Unicode standard. - -data GeneralCategory - = UppercaseLetter -- Lu Letter, Uppercase - | LowercaseLetter -- Ll Letter, Lowercase - | TitlecaseLetter -- Lt Letter, Titlecase - | ModifierLetter -- Lm Letter, Modifier - | OtherLetter -- Lo Letter, Other - | NonSpacingMark -- Mn Mark, Non-Spacing - | SpacingCombiningMark -- Mc Mark, Spacing Combining - | EnclosingMark -- Me Mark, Enclosing - | DecimalNumber -- Nd Number, Decimal - | LetterNumber -- Nl Number, Letter - | OtherNumber -- No Number, Other - | ConnectorPunctuation -- Pc Punctuation, Connector - | DashPunctuation -- Pd Punctuation, Dash - | OpenPunctuation -- Ps Punctuation, Open - | ClosePunctuation -- Pe Punctuation, Close - | InitialQuote -- Pi Punctuation, Initial quote - | FinalQuote -- Pf Punctuation, Final quote - | OtherPunctuation -- Po Punctuation, Other - | MathSymbol -- Sm Symbol, Math - | CurrencySymbol -- Sc Symbol, Currency - | ModifierSymbol -- Sk Symbol, Modifier - | OtherSymbol -- So Symbol, Other - | Space -- Zs Separator, Space - | LineSeparator -- Zl Separator, Line - | ParagraphSeparator -- Zp Separator, Paragraph - | Control -- Cc Other, Control - | Format -- Cf Other, Format - | Surrogate -- Cs Other, Surrogate - | PrivateUse -- Co Other, Private Use - | NotAssigned -- Cn Other, Not Assigned - deriving (Eq, Ord, Enum, Read, Show, Bounded) - --- | Retrieves the general Unicode category of the character. -generalCategory :: Char -> GeneralCategory -generalCategory c = toEnum $ fromIntegral $ wgencat $ fromIntegral $ ord c - -foreign import ccall unsafe "u_gencat" - wgencat :: CInt -> CInt - -isPrint :: Char -> Bool -isPrint c = iswprint (fromIntegral (ord c)) /= 0 - -isUpper :: Char -> Bool -isUpper c = iswupper (fromIntegral (ord c)) /= 0 - -foreign import ccall unsafe "u_iswprint" - iswprint :: CInt -> CInt - -foreign import ccall unsafe "u_iswupper" - iswupper :: CInt -> CInt -#endif -- 1.7.10.4