root/src/Pugs/Parser/Charnames.hs

Revision 21673, 17.4 kB (checked in by audreyt, 11 months ago)

* Import Pugs 6.2.13.11 from Hackage into our source tree.
* Highlights:

  • Much faster startup time
  • Slightly faster compilation time (mostly due to refactored Pugs.AST.Internals)
  • Portable-to-Win32 readline thanks to Haskeline
  • Property svn:mime-type set to text/plain; charset=UTF-8
  • Property svn:eol-style set to native
Line 
1{-# OPTIONS_GHC -fglasgow-exts -fno-full-laziness -fno-cse -cpp -fallow-overlapping-instances #-}
2
3module Pugs.Parser.Charnames (nameToCode) where
4
5import Pugs.Internals
6
7#ifdef PUGS_HAVE_PERL5
8
9import Pugs.Embed.Perl5
10
11-- If we do have Perl 5, support for all unicode names via Perl5's charnames::vianame.
12
13nameToCode :: String -> Maybe Int
14nameToCode name = inlinePerformIO $ do
15    sv      <- evalPerl5 ("use utf8; use charnames ':full'; ord(qq[\\N{"++name++"}])") nullEnv 1
16    svToVInt sv >>= \iv -> case iv of
17        0 -> svToVStr sv >>= \pv -> case pv of
18            "0" -> return (Just 0)
19            _   -> return Nothing   -- undef
20        x -> return (Just x)
21
22#else
23
24import qualified Data.HashTable as H
25import Data.ByteString.Unsafe (unsafePackAddressLen)
26
27-- If we don't have Perl 5, support for names in the 0x00 - 0xFF range only.
28
29nameToCode :: String -> Maybe Int
30nameToCode name = inlinePerformIO (H.lookup _NameToCode (cast name))
31
32{-# NOINLINE _NameToCode #-}
33_NameToCode :: H.HashTable ByteString Int
34_NameToCode = unsafePerformIO $! hashList =<< mapM compute
35    [ (unsafePackAddressLen 4 "NULL"#, 0x0000)
36    , (unsafePackAddressLen 16 "START OF HEADING"#, 0x0001)
37    , (unsafePackAddressLen 13 "START OF TEXT"#, 0x0002)
38    , (unsafePackAddressLen 11 "END OF TEXT"#, 0x0003)
39    , (unsafePackAddressLen 19 "END OF TRANSMISSION"#, 0x0004)
40    , (unsafePackAddressLen 7 "ENQUIRY"#, 0x0005)
41    , (unsafePackAddressLen 11 "ACKNOWLEDGE"#, 0x0006)
42    , (unsafePackAddressLen 4 "BELL"#, 0x0007)
43    , (unsafePackAddressLen 9 "BACKSPACE"#, 0x0008)
44    , (unsafePackAddressLen 20 "CHARACTER TABULATION"#, 0x0009)
45    , (unsafePackAddressLen 14 "LINE FEED (LF)"#, 0x000A)
46    , (unsafePackAddressLen 9 "LINE FEED"#, 0x000A)
47    , (unsafePackAddressLen 15 "LINE TABULATION"#, 0x000B)
48    , (unsafePackAddressLen 14 "FORM FEED (FF)"#, 0x000C)
49    , (unsafePackAddressLen 9 "FORM FEED"#, 0x000C)
50    , (unsafePackAddressLen 20 "CARRIAGE RETURN (CR)"#, 0x000D)
51    , (unsafePackAddressLen 15 "CARRIAGE RETURN"#, 0x000D)
52    , (unsafePackAddressLen 9 "SHIFT OUT"#, 0x000E)
53    , (unsafePackAddressLen 8 "SHIFT IN"#, 0x000F)
54    , (unsafePackAddressLen 16 "DATA LINK ESCAPE"#, 0x0010)
55    , (unsafePackAddressLen 18 "DEVICE CONTROL ONE"#, 0x0011)
56    , (unsafePackAddressLen 18 "DEVICE CONTROL TWO"#, 0x0012)
57    , (unsafePackAddressLen 20 "DEVICE CONTROL THREE"#, 0x0013)
58    , (unsafePackAddressLen 19 "DEVICE CONTROL FOUR"#, 0x0014)
59    , (unsafePackAddressLen 20 "NEGATIVE ACKNOWLEDGE"#, 0x0015)
60    , (unsafePackAddressLen 16 "SYNCHRONOUS IDLE"#, 0x0016)
61    , (unsafePackAddressLen 25 "END OF TRANSMISSION BLOCK"#, 0x0017)
62    , (unsafePackAddressLen 6 "CANCEL"#, 0x0018)
63    , (unsafePackAddressLen 13 "END OF MEDIUM"#, 0x0019)
64    , (unsafePackAddressLen 10 "SUBSTITUTE"#, 0x001A)
65    , (unsafePackAddressLen 6 "ESCAPE"#, 0x001B)
66    , (unsafePackAddressLen 26 "INFORMATION SEPARATOR FOUR"#, 0x001C)
67    , (unsafePackAddressLen 27 "INFORMATION SEPARATOR THREE"#, 0x001D)
68    , (unsafePackAddressLen 25 "INFORMATION SEPARATOR TWO"#, 0x001E)
69    , (unsafePackAddressLen 25 "INFORMATION SEPARATOR ONE"#, 0x001F)
70    , (unsafePackAddressLen 5 "SPACE"#, 0x0020)
71    , (unsafePackAddressLen 16 "EXCLAMATION MARK"#, 0x0021)
72    , (unsafePackAddressLen 14 "QUOTATION MARK"#, 0x0022)
73    , (unsafePackAddressLen 11 "NUMBER SIGN"#, 0x0023)
74    , (unsafePackAddressLen 11 "DOLLAR SIGN"#, 0x0024)
75    , (unsafePackAddressLen 12 "PERCENT SIGN"#, 0x0025)
76    , (unsafePackAddressLen 9 "AMPERSAND"#, 0x0026)
77    , (unsafePackAddressLen 10 "APOSTROPHE"#, 0x0027)
78    , (unsafePackAddressLen 16 "LEFT PARENTHESIS"#, 0x0028)
79    , (unsafePackAddressLen 17 "RIGHT PARENTHESIS"#, 0x0029)
80    , (unsafePackAddressLen 8 "ASTERISK"#, 0x002A)
81    , (unsafePackAddressLen 9 "PLUS SIGN"#, 0x002B)
82    , (unsafePackAddressLen 5 "COMMA"#, 0x002C)
83    , (unsafePackAddressLen 12 "HYPHEN-MINUS"#, 0x002D)
84    , (unsafePackAddressLen 9 "FULL STOP"#, 0x002E)
85    , (unsafePackAddressLen 7 "SOLIDUS"#, 0x002F)
86    , (unsafePackAddressLen 10 "DIGIT ZERO"#, 0x0030)
87    , (unsafePackAddressLen 9 "DIGIT ONE"#, 0x0031)
88    , (unsafePackAddressLen 9 "DIGIT TWO"#, 0x0032)
89    , (unsafePackAddressLen 11 "DIGIT THREE"#, 0x0033)
90    , (unsafePackAddressLen 10 "DIGIT FOUR"#, 0x0034)
91    , (unsafePackAddressLen 10 "DIGIT FIVE"#, 0x0035)
92    , (unsafePackAddressLen 9 "DIGIT SIX"#, 0x0036)
93    , (unsafePackAddressLen 11 "DIGIT SEVEN"#, 0x0037)
94    , (unsafePackAddressLen 11 "DIGIT EIGHT"#, 0x0038)
95    , (unsafePackAddressLen 10 "DIGIT NINE"#, 0x0039)
96    , (unsafePackAddressLen 5 "COLON"#, 0x003A)
97    , (unsafePackAddressLen 9 "SEMICOLON"#, 0x003B)
98    , (unsafePackAddressLen 14 "LESS-THAN SIGN"#, 0x003C)
99    , (unsafePackAddressLen 11 "EQUALS SIGN"#, 0x003D)
100    , (unsafePackAddressLen 17 "GREATER-THAN SIGN"#, 0x003E)
101    , (unsafePackAddressLen 13 "QUESTION MARK"#, 0x003F)
102    , (unsafePackAddressLen 13 "COMMERCIAL AT"#, 0x0040)
103    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER A"#, 0x0041)
104    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER B"#, 0x0042)
105    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER C"#, 0x0043)
106    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER D"#, 0x0044)
107    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER E"#, 0x0045)
108    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER F"#, 0x0046)
109    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER G"#, 0x0047)
110    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER H"#, 0x0048)
111    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER I"#, 0x0049)
112    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER J"#, 0x004A)
113    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER K"#, 0x004B)
114    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER L"#, 0x004C)
115    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER M"#, 0x004D)
116    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER N"#, 0x004E)
117    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER O"#, 0x004F)
118    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER P"#, 0x0050)
119    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER Q"#, 0x0051)
120    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER R"#, 0x0052)
121    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER S"#, 0x0053)
122    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER T"#, 0x0054)
123    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER U"#, 0x0055)
124    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER V"#, 0x0056)
125    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER W"#, 0x0057)
126    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER X"#, 0x0058)
127    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER Y"#, 0x0059)
128    , (unsafePackAddressLen 22 "LATIN CAPITAL LETTER Z"#, 0x005A)
129    , (unsafePackAddressLen 19 "LEFT SQUARE BRACKET"#, 0x005B)
130    , (unsafePackAddressLen 15 "REVERSE SOLIDUS"#, 0x005C)
131    , (unsafePackAddressLen 20 "RIGHT SQUARE BRACKET"#, 0x005D)
132    , (unsafePackAddressLen 17 "CIRCUMFLEX ACCENT"#, 0x005E)
133    , (unsafePackAddressLen 8 "LOW LINE"#, 0x005F)
134    , (unsafePackAddressLen 12 "GRAVE ACCENT"#, 0x0060)
135    , (unsafePackAddressLen 20 "LATIN SMALL LETTER A"#, 0x0061)
136    , (unsafePackAddressLen 20 "LATIN SMALL LETTER B"#, 0x0062)
137    , (unsafePackAddressLen 20 "LATIN SMALL LETTER C"#, 0x0063)
138    , (unsafePackAddressLen 20 "LATIN SMALL LETTER D"#, 0x0064)
139    , (unsafePackAddressLen 20 "LATIN SMALL LETTER E"#, 0x0065)
140    , (unsafePackAddressLen 20 "LATIN SMALL LETTER F"#, 0x0066)
141    , (unsafePackAddressLen 20 "LATIN SMALL LETTER G"#, 0x0067)
142    , (unsafePackAddressLen 20 "LATIN SMALL LETTER H"#, 0x0068)
143    , (unsafePackAddressLen 20 "LATIN SMALL LETTER I"#, 0x0069)
144    , (unsafePackAddressLen 20 "LATIN SMALL LETTER J"#, 0x006A)
145    , (unsafePackAddressLen 20 "LATIN SMALL LETTER K"#, 0x006B)
146    , (unsafePackAddressLen 20 "LATIN SMALL LETTER L"#, 0x006C)
147    , (unsafePackAddressLen 20 "LATIN SMALL LETTER M"#, 0x006D)
148    , (unsafePackAddressLen 20 "LATIN SMALL LETTER N"#, 0x006E)
149    , (unsafePackAddressLen 20 "LATIN SMALL LETTER O"#, 0x006F)
150    , (unsafePackAddressLen 20 "LATIN SMALL LETTER P"#, 0x0070)
151    , (unsafePackAddressLen 20 "LATIN SMALL LETTER Q"#, 0x0071)
152    , (unsafePackAddressLen 20 "LATIN SMALL LETTER R"#, 0x0072)
153    , (unsafePackAddressLen 20 "LATIN SMALL LETTER S"#, 0x0073)
154    , (unsafePackAddressLen 20 "LATIN SMALL LETTER T"#, 0x0074)
155    , (unsafePackAddressLen 20 "LATIN SMALL LETTER U"#, 0x0075)
156    , (unsafePackAddressLen 20 "LATIN SMALL LETTER V"#, 0x0076)
157    , (unsafePackAddressLen 20 "LATIN SMALL LETTER W"#, 0x0077)
158    , (unsafePackAddressLen 20 "LATIN SMALL LETTER X"#, 0x0078)
159    , (unsafePackAddressLen 20 "LATIN SMALL LETTER Y"#, 0x0079)
160    , (unsafePackAddressLen 20 "LATIN SMALL LETTER Z"#, 0x007A)
161    , (unsafePackAddressLen 18 "LEFT CURLY BRACKET"#, 0x007B)
162    , (unsafePackAddressLen 13 "VERTICAL LINE"#, 0x007C)
163    , (unsafePackAddressLen 19 "RIGHT CURLY BRACKET"#, 0x007D)
164    , (unsafePackAddressLen 5 "TILDE"#, 0x007E)
165    , (unsafePackAddressLen 6 "DELETE"#, 0x007F)
166    , (unsafePackAddressLen 20 "BREAK PERMITTED HERE"#, 0x0082)
167    , (unsafePackAddressLen 13 "NO BREAK HERE"#, 0x0083)
168    , (unsafePackAddressLen 15 "NEXT LINE (NEL)"#, 0x0085)
169    , (unsafePackAddressLen 9 "NEXT LINE"#, 0x0085)
170    , (unsafePackAddressLen 22 "START OF SELECTED AREA"#, 0x0086)
171    , (unsafePackAddressLen 20 "END OF SELECTED AREA"#, 0x0087)
172    , (unsafePackAddressLen 24 "CHARACTER TABULATION SET"#, 0x0088)
173    , (unsafePackAddressLen 39 "CHARACTER TABULATION WITH JUSTIFICATION"#, 0x0089)
174    , (unsafePackAddressLen 19 "LINE TABULATION SET"#, 0x008A)
175    , (unsafePackAddressLen 20 "PARTIAL LINE FORWARD"#, 0x008B)
176    , (unsafePackAddressLen 21 "PARTIAL LINE BACKWARD"#, 0x008C)
177    , (unsafePackAddressLen 17 "REVERSE LINE FEED"#, 0x008D)
178    , (unsafePackAddressLen 16 "SINGLE SHIFT TWO"#, 0x008E)
179    , (unsafePackAddressLen 18 "SINGLE SHIFT THREE"#, 0x008F)
180    , (unsafePackAddressLen 21 "DEVICE CONTROL STRING"#, 0x0090)
181    , (unsafePackAddressLen 15 "PRIVATE USE ONE"#, 0x0091)
182    , (unsafePackAddressLen 15 "PRIVATE USE TWO"#, 0x0092)
183    , (unsafePackAddressLen 18 "SET TRANSMIT STATE"#, 0x0093)
184    , (unsafePackAddressLen 16 "CANCEL CHARACTER"#, 0x0094)
185    , (unsafePackAddressLen 15 "MESSAGE WAITING"#, 0x0095)
186    , (unsafePackAddressLen 21 "START OF GUARDED AREA"#, 0x0096)
187    , (unsafePackAddressLen 19 "END OF GUARDED AREA"#, 0x0097)
188    , (unsafePackAddressLen 15 "START OF STRING"#, 0x0098)
189    , (unsafePackAddressLen 27 "SINGLE CHARACTER INTRODUCER"#, 0x009A)
190    , (unsafePackAddressLen 27 "CONTROL SEQUENCE INTRODUCER"#, 0x009B)
191    , (unsafePackAddressLen 17 "STRING TERMINATOR"#, 0x009C)
192    , (unsafePackAddressLen 24 "OPERATING SYSTEM COMMAND"#, 0x009D)
193    , (unsafePackAddressLen 15 "PRIVACY MESSAGE"#, 0x009E)
194    , (unsafePackAddressLen 27 "APPLICATION PROGRAM COMMAND"#, 0x009F)
195    , (unsafePackAddressLen 14 "NO-BREAK SPACE"#, 0x00A0)
196    , (unsafePackAddressLen 25 "INVERTED EXCLAMATION MARK"#, 0x00A1)
197    , (unsafePackAddressLen 9 "CENT SIGN"#, 0x00A2)
198    , (unsafePackAddressLen 10 "POUND SIGN"#, 0x00A3)
199    , (unsafePackAddressLen 13 "CURRENCY SIGN"#, 0x00A4)
200    , (unsafePackAddressLen 8 "YEN SIGN"#, 0x00A5)
201    , (unsafePackAddressLen 10 "BROKEN BAR"#, 0x00A6)
202    , (unsafePackAddressLen 12 "SECTION SIGN"#, 0x00A7)
203    , (unsafePackAddressLen 9 "DIAERESIS"#, 0x00A8)
204    , (unsafePackAddressLen 14 "COPYRIGHT SIGN"#, 0x00A9)
205    , (unsafePackAddressLen 26 "FEMININE ORDINAL INDICATOR"#, 0x00AA)
206    , (unsafePackAddressLen 41 "LEFT-POINTING DOUBLE ANGLE QUOTATION MARK"#, 0x00AB)
207    , (unsafePackAddressLen 8 "NOT SIGN"#, 0x00AC)
208    , (unsafePackAddressLen 11 "SOFT HYPHEN"#, 0x00AD)
209    , (unsafePackAddressLen 15 "REGISTERED SIGN"#, 0x00AE)
210    , (unsafePackAddressLen 6 "MACRON"#, 0x00AF)
211    , (unsafePackAddressLen 11 "DEGREE SIGN"#, 0x00B0)
212    , (unsafePackAddressLen 15 "PLUS-MINUS SIGN"#, 0x00B1)
213    , (unsafePackAddressLen 15 "SUPERSCRIPT TWO"#, 0x00B2)
214    , (unsafePackAddressLen 17 "SUPERSCRIPT THREE"#, 0x00B3)
215    , (unsafePackAddressLen 12 "ACUTE ACCENT"#, 0x00B4)
216    , (unsafePackAddressLen 10 "MICRO SIGN"#, 0x00B5)
217    , (unsafePackAddressLen 12 "PILCROW SIGN"#, 0x00B6)
218    , (unsafePackAddressLen 10 "MIDDLE DOT"#, 0x00B7)
219    , (unsafePackAddressLen 7 "CEDILLA"#, 0x00B8)
220    , (unsafePackAddressLen 15 "SUPERSCRIPT ONE"#, 0x00B9)
221    , (unsafePackAddressLen 27 "MASCULINE ORDINAL INDICATOR"#, 0x00BA)
222    , (unsafePackAddressLen 42 "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK"#, 0x00BB)
223    , (unsafePackAddressLen 27 "VULGAR FRACTION ONE QUARTER"#, 0x00BC)
224    , (unsafePackAddressLen 24 "VULGAR FRACTION ONE HALF"#, 0x00BD)
225    , (unsafePackAddressLen 30 "VULGAR FRACTION THREE QUARTERS"#, 0x00BE)
226    , (unsafePackAddressLen 22 "INVERTED QUESTION MARK"#, 0x00BF)
227    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER A WITH GRAVE"#, 0x00C0)
228    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER A WITH ACUTE"#, 0x00C1)
229    , (unsafePackAddressLen 38 "LATIN CAPITAL LETTER A WITH CIRCUMFLEX"#, 0x00C2)
230    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER A WITH TILDE"#, 0x00C3)
231    , (unsafePackAddressLen 37 "LATIN CAPITAL LETTER A WITH DIAERESIS"#, 0x00C4)
232    , (unsafePackAddressLen 38 "LATIN CAPITAL LETTER A WITH RING ABOVE"#, 0x00C5)
233    , (unsafePackAddressLen 23 "LATIN CAPITAL LETTER AE"#, 0x00C6)
234    , (unsafePackAddressLen 35 "LATIN CAPITAL LETTER C WITH CEDILLA"#, 0x00C7)
235    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER E WITH GRAVE"#, 0x00C8)
236    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER E WITH ACUTE"#, 0x00C9)
237    , (unsafePackAddressLen 38 "LATIN CAPITAL LETTER E WITH CIRCUMFLEX"#, 0x00CA)
238    , (unsafePackAddressLen 37 "LATIN CAPITAL LETTER E WITH DIAERESIS"#, 0x00CB)
239    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER I WITH GRAVE"#, 0x00CC)
240    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER I WITH ACUTE"#, 0x00CD)
241    , (unsafePackAddressLen 38 "LATIN CAPITAL LETTER I WITH CIRCUMFLEX"#, 0x00CE)
242    , (unsafePackAddressLen 37 "LATIN CAPITAL LETTER I WITH DIAERESIS"#, 0x00CF)
243    , (unsafePackAddressLen 24 "LATIN CAPITAL LETTER ETH"#, 0x00D0)
244    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER N WITH TILDE"#, 0x00D1)
245    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER O WITH GRAVE"#, 0x00D2)
246    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER O WITH ACUTE"#, 0x00D3)
247    , (unsafePackAddressLen 38 "LATIN CAPITAL LETTER O WITH CIRCUMFLEX"#, 0x00D4)
248    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER O WITH TILDE"#, 0x00D5)
249    , (unsafePackAddressLen 37 "LATIN CAPITAL LETTER O WITH DIAERESIS"#, 0x00D6)
250    , (unsafePackAddressLen 19 "MULTIPLICATION SIGN"#, 0x00D7)
251    , (unsafePackAddressLen 34 "LATIN CAPITAL LETTER O WITH STROKE"#, 0x00D8)
252    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER U WITH GRAVE"#, 0x00D9)
253    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER U WITH ACUTE"#, 0x00DA)
254    , (unsafePackAddressLen 38 "LATIN CAPITAL LETTER U WITH CIRCUMFLEX"#, 0x00DB)
255    , (unsafePackAddressLen 37 "LATIN CAPITAL LETTER U WITH DIAERESIS"#, 0x00DC)
256    , (unsafePackAddressLen 33 "LATIN CAPITAL LETTER Y WITH ACUTE"#, 0x00DD)
257    , (unsafePackAddressLen 26 "LATIN CAPITAL LETTER THORN"#, 0x00DE)
258    , (unsafePackAddressLen 26 "LATIN SMALL LETTER SHARP S"#, 0x00DF)
259    , (unsafePackAddressLen 31 "LATIN SMALL LETTER A WITH GRAVE"#, 0x00E0)
260    , (unsafePackAddressLen 31 "LATIN SMALL LETTER A WITH ACUTE"#, 0x00E1)
261    , (unsafePackAddressLen 36 "LATIN SMALL LETTER A WITH CIRCUMFLEX"#, 0x00E2)
262    , (unsafePackAddressLen 31 "LATIN SMALL LETTER A WITH TILDE"#, 0x00E3)
263    , (unsafePackAddressLen 35 "LATIN SMALL LETTER A WITH DIAERESIS"#, 0x00E4)
264    , (unsafePackAddressLen 36 "LATIN SMALL LETTER A WITH RING ABOVE"#, 0x00E5)
265    , (unsafePackAddressLen 21 "LATIN SMALL LETTER AE"#, 0x00E6)
266    , (unsafePackAddressLen 33 "LATIN SMALL LETTER C WITH CEDILLA"#, 0x00E7)
267    , (unsafePackAddressLen 31 "LATIN SMALL LETTER E WITH GRAVE"#, 0x00E8)
268    , (unsafePackAddressLen 31 "LATIN SMALL LETTER E WITH ACUTE"#, 0x00E9)
269    , (unsafePackAddressLen 36 "LATIN SMALL LETTER E WITH CIRCUMFLEX"#, 0x00EA)
270    , (unsafePackAddressLen 35 "LATIN SMALL LETTER E WITH DIAERESIS"#, 0x00EB)
271    , (unsafePackAddressLen 31 "LATIN SMALL LETTER I WITH GRAVE"#, 0x00EC)
272    , (unsafePackAddressLen 31 "LATIN SMALL LETTER I WITH ACUTE"#, 0x00ED)
273    , (unsafePackAddressLen 36 "LATIN SMALL LETTER I WITH CIRCUMFLEX"#, 0x00EE)
274    , (unsafePackAddressLen 35 "LATIN SMALL LETTER I WITH DIAERESIS"#, 0x00EF)
275    , (unsafePackAddressLen 22 "LATIN SMALL LETTER ETH"#, 0x00F0)
276    , (unsafePackAddressLen 31 "LATIN SMALL LETTER N WITH TILDE"#, 0x00F1)
277    , (unsafePackAddressLen 31 "LATIN SMALL LETTER O WITH GRAVE"#, 0x00F2)
278    , (unsafePackAddressLen 31 "LATIN SMALL LETTER O WITH ACUTE"#, 0x00F3)
279    , (unsafePackAddressLen 36 "LATIN SMALL LETTER O WITH CIRCUMFLEX"#, 0x00F4)
280    , (unsafePackAddressLen 31 "LATIN SMALL LETTER O WITH TILDE"#, 0x00F5)
281    , (unsafePackAddressLen 35 "LATIN SMALL LETTER O WITH DIAERESIS"#, 0x00F6)
282    , (unsafePackAddressLen 13 "DIVISION SIGN"#, 0x00F7)
283    , (unsafePackAddressLen 32 "LATIN SMALL LETTER O WITH STROKE"#, 0x00F8)
284    , (unsafePackAddressLen 31 "LATIN SMALL LETTER U WITH GRAVE"#, 0x00F9)
285    , (unsafePackAddressLen 31 "LATIN SMALL LETTER U WITH ACUTE"#, 0x00FA)
286    , (unsafePackAddressLen 36 "LATIN SMALL LETTER U WITH CIRCUMFLEX"#, 0x00FB)
287    , (unsafePackAddressLen 35 "LATIN SMALL LETTER U WITH DIAERESIS"#, 0x00FC)
288    , (unsafePackAddressLen 31 "LATIN SMALL LETTER Y WITH ACUTE"#, 0x00FD)
289    , (unsafePackAddressLen 24 "LATIN SMALL LETTER THORN"#, 0x00FE)
290    , (unsafePackAddressLen 35 "LATIN SMALL LETTER Y WITH DIAERESIS"#, 0x00FF)
291    ]
292    where
293    hashList :: [(ByteString, a)] -> IO (H.HashTable ByteString a)
294    hashList = H.fromList hashByteString
295    compute (f, y) = f >>= \x -> return (x, y)
296
297#endif
Note: See TracBrowser for help on using the browser.