-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathx11color.sml
492 lines (486 loc) · 28.2 KB
/
x11color.sml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
(* $Id$
*
* Copyright (c) 2008 Timothy Bourke (University of NSW and NICTA)
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the "BSD License" which is distributed with the
* software in the file LICENSE.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the BSD
* License for more details.
*)
structure X11Color : X11_COLOR =
struct
datatype t = LightPink | Pink | Crimson | LavenderBlush | PaleVioletRed
| HotPink | DeepPink | MediumVioletRed | Orchid
| Thistle | Plum | Violet | Magenta
| Fuchsia | DarkMagenta | Purple | MediumOrchid
| DarkViolet | DarkOrchid | Indigo | BlueViolet
| MediumPurple | MediumSlateBlue | SlateBlue | DarkSlateBlue
| Lavender | GhostWhite | Blue | MediumBlue
| MidnightBlue | DarkBlue | Navy | RoyalBlue
| CornflowerBlue | LightSteelBlue | LightSlateGray | SlateGray
| DodgerBlue | AliceBlue | SteelBlue | LightSkyBlue
| SkyBlue | DeepSkyBlue | LightBlue | PowderBlue
| CadetBlue | Azure | LightCyan | PaleTurquoise
| Cyan | Aqua | DarkTurquoise | DarkSlateGray
| DarkCyan | Teal | MediumTurquoise | LightSeaGreen
| Turquoise | Aquamarine | MediumAquamarine | MediumSpringGreen
| MintCream | SpringGreen | MediumSeaGreen | SeaGreen
| Honeydew | LightGreen | PaleGreen | DarkSeaGreen
| LimeGreen | Lime | ForestGreen | Green
| DarkGreen | Chartreuse | LawnGreen | GreenYellow
| DarkOliveGreen | YellowGreen | OliveDrab | Beige
| LightGoldenrodYellow | Ivory | LightYellow | Yellow
| Olive | DarkKhaki | LemonChiffon | PaleGoldenrod
| Khaki | Gold | Cornsilk | Goldenrod
| DarkGoldenrod | FloralWhite | OldLace | Wheat
| Moccasin | Orange | PapayaWhip | BlanchedAlmond
| NavajoWhite | AntiqueWhite | Tan | BurlyWood
| Bisque | DarkOrange | Linen | Peru
| PeachPuff | SandyBrown | Chocolate | SaddleBrown
| Seashell | Sienna | LightSalmon | Coral
| OrangeRed | DarkSalmon | Tomato | MistyRose
| Salmon | Snow | LightCoral | RosyBrown
| IndianRed | Red | Brown | FireBrick
| DarkRed | Maroon | White | WhiteSmoke
| Gainsboro | LightGrey | Silver | DarkGray
| Gray | DimGray | Black
fun toString LightPink = "lightpink"
| toString Pink = "pink"
| toString Crimson = "crimson"
| toString LavenderBlush = "lavenderblush"
| toString PaleVioletRed = "palevioletred"
| toString HotPink = "hotpink"
| toString DeepPink = "deeppink"
| toString MediumVioletRed = "mediumvioletred"
| toString Orchid = "orchid"
| toString Thistle = "thistle"
| toString Plum = "plum"
| toString Violet = "violet"
| toString Magenta = "magenta"
| toString Fuchsia = "fuchsia"
| toString DarkMagenta = "darkmagenta"
| toString Purple = "purple"
| toString MediumOrchid = "mediumorchid"
| toString DarkViolet = "darkviolet"
| toString DarkOrchid = "darkorchid"
| toString Indigo = "indigo"
| toString BlueViolet = "blueviolet"
| toString MediumPurple = "mediumpurple"
| toString MediumSlateBlue = "mediumslateblue"
| toString SlateBlue = "slateblue"
| toString DarkSlateBlue = "darkslateblue"
| toString Lavender = "lavender"
| toString GhostWhite = "ghostwhite"
| toString Blue = "blue"
| toString MediumBlue = "mediumblue"
| toString MidnightBlue = "midnightblue"
| toString DarkBlue = "darkblue"
| toString Navy = "navy"
| toString RoyalBlue = "royalblue"
| toString CornflowerBlue = "cornflowerblue"
| toString LightSteelBlue = "lightsteelblue"
| toString LightSlateGray = "lightslategray"
| toString SlateGray = "slategray"
| toString DodgerBlue = "dodgerblue"
| toString AliceBlue = "aliceblue"
| toString SteelBlue = "steelblue"
| toString LightSkyBlue = "lightskyblue"
| toString SkyBlue = "skyblue"
| toString DeepSkyBlue = "deepskyblue"
| toString LightBlue = "lightblue"
| toString PowderBlue = "powderblue"
| toString CadetBlue = "cadetblue"
| toString Azure = "azure"
| toString LightCyan = "lightcyan"
| toString PaleTurquoise = "paleturquoise"
| toString Cyan = "cyan"
| toString Aqua = "aqua"
| toString DarkTurquoise = "darkturquoise"
| toString DarkSlateGray = "darkslategray"
| toString DarkCyan = "darkcyan"
| toString Teal = "teal"
| toString MediumTurquoise = "mediumturquoise"
| toString LightSeaGreen = "lightseagreen"
| toString Turquoise = "turquoise"
| toString Aquamarine = "aquamarine"
| toString MediumAquamarine = "mediumaquamarine"
| toString MediumSpringGreen = "mediumspringgreen"
| toString MintCream = "mintcream"
| toString SpringGreen = "springgreen"
| toString MediumSeaGreen = "mediumseagreen"
| toString SeaGreen = "seagreen"
| toString Honeydew = "honeydew"
| toString LightGreen = "lightgreen"
| toString PaleGreen = "palegreen"
| toString DarkSeaGreen = "darkseagreen"
| toString LimeGreen = "limegreen"
| toString Lime = "lime"
| toString ForestGreen = "forestgreen"
| toString Green = "green"
| toString DarkGreen = "darkgreen"
| toString Chartreuse = "chartreuse"
| toString LawnGreen = "lawngreen"
| toString GreenYellow = "greenyellow"
| toString DarkOliveGreen = "darkolivegreen"
| toString YellowGreen = "yellowgreen"
| toString OliveDrab = "olivedrab"
| toString Beige = "beige"
| toString LightGoldenrodYellow = "lightgoldenrodyellow"
| toString Ivory = "ivory"
| toString LightYellow = "lightyellow"
| toString Yellow = "yellow"
| toString Olive = "olive"
| toString DarkKhaki = "darkkhaki"
| toString LemonChiffon = "lemonchiffon"
| toString PaleGoldenrod = "palegoldenrod"
| toString Khaki = "khaki"
| toString Gold = "gold"
| toString Cornsilk = "cornsilk"
| toString Goldenrod = "goldenrod"
| toString DarkGoldenrod = "darkgoldenrod"
| toString FloralWhite = "floralwhite"
| toString OldLace = "oldlace"
| toString Wheat = "wheat"
| toString Moccasin = "moccasin"
| toString Orange = "orange"
| toString PapayaWhip = "papayawhip"
| toString BlanchedAlmond = "blanchedalmond"
| toString NavajoWhite = "navajowhite"
| toString AntiqueWhite = "antiquewhite"
| toString Tan = "tan"
| toString BurlyWood = "burlywood"
| toString Bisque = "bisque"
| toString DarkOrange = "darkorange"
| toString Linen = "linen"
| toString Peru = "peru"
| toString PeachPuff = "peachpuff"
| toString SandyBrown = "sandybrown"
| toString Chocolate = "chocolate"
| toString SaddleBrown = "saddlebrown"
| toString Seashell = "seashell"
| toString Sienna = "sienna"
| toString LightSalmon = "lightsalmon"
| toString Coral = "coral"
| toString OrangeRed = "orangered"
| toString DarkSalmon = "darksalmon"
| toString Tomato = "tomato"
| toString MistyRose = "mistyrose"
| toString Salmon = "salmon"
| toString Snow = "snow"
| toString LightCoral = "lightcoral"
| toString RosyBrown = "rosybrown"
| toString IndianRed = "indianred"
| toString Red = "red"
| toString Brown = "brown"
| toString FireBrick = "firebrick"
| toString DarkRed = "darkred"
| toString Maroon = "maroon"
| toString White = "white"
| toString WhiteSmoke = "whitesmoke"
| toString Gainsboro = "gainsboro"
| toString LightGrey = "lightgrey"
| toString Silver = "silver"
| toString DarkGray = "darkgray"
| toString Gray = "gray"
| toString DimGray = "dimgray"
| toString Black = "black"
fun fromString "lightpink" = LightPink
| fromString "pink" = Pink
| fromString "crimson" = Crimson
| fromString "lavenderblush" = LavenderBlush
| fromString "palevioletred" = PaleVioletRed
| fromString "hotpink" = HotPink
| fromString "deeppink" = DeepPink
| fromString "mediumvioletred" = MediumVioletRed
| fromString "orchid" = Orchid
| fromString "thistle" = Thistle
| fromString "plum" = Plum
| fromString "violet" = Violet
| fromString "magenta" = Magenta
| fromString "fuchsia" = Fuchsia
| fromString "darkmagenta" = DarkMagenta
| fromString "purple" = Purple
| fromString "mediumorchid" = MediumOrchid
| fromString "darkviolet" = DarkViolet
| fromString "darkorchid" = DarkOrchid
| fromString "indigo" = Indigo
| fromString "blueviolet" = BlueViolet
| fromString "mediumpurple" = MediumPurple
| fromString "mediumslateblue" = MediumSlateBlue
| fromString "slateblue" = SlateBlue
| fromString "darkslateblue" = DarkSlateBlue
| fromString "lavender" = Lavender
| fromString "ghostwhite" = GhostWhite
| fromString "blue" = Blue
| fromString "mediumblue" = MediumBlue
| fromString "midnightblue" = MidnightBlue
| fromString "darkblue" = DarkBlue
| fromString "navy" = Navy
| fromString "royalblue" = RoyalBlue
| fromString "cornflowerblue" = CornflowerBlue
| fromString "lightsteelblue" = LightSteelBlue
| fromString "lightslategray" = LightSlateGray
| fromString "slategray" = SlateGray
| fromString "dodgerblue" = DodgerBlue
| fromString "aliceblue" = AliceBlue
| fromString "steelblue" = SteelBlue
| fromString "lightskyblue" = LightSkyBlue
| fromString "skyblue" = SkyBlue
| fromString "deepskyblue" = DeepSkyBlue
| fromString "lightblue" = LightBlue
| fromString "powderblue" = PowderBlue
| fromString "cadetblue" = CadetBlue
| fromString "azure" = Azure
| fromString "lightcyan" = LightCyan
| fromString "paleturquoise" = PaleTurquoise
| fromString "cyan" = Cyan
| fromString "aqua" = Aqua
| fromString "darkturquoise" = DarkTurquoise
| fromString "darkslategray" = DarkSlateGray
| fromString "darkcyan" = DarkCyan
| fromString "teal" = Teal
| fromString "mediumturquoise" = MediumTurquoise
| fromString "lightseagreen" = LightSeaGreen
| fromString "turquoise" = Turquoise
| fromString "aquamarine" = Aquamarine
| fromString "mediumaquamarine" = MediumAquamarine
| fromString "mediumspringgreen" = MediumSpringGreen
| fromString "mintcream" = MintCream
| fromString "springgreen" = SpringGreen
| fromString "mediumseagreen" = MediumSeaGreen
| fromString "seagreen" = SeaGreen
| fromString "honeydew" = Honeydew
| fromString "lightgreen" = LightGreen
| fromString "palegreen" = PaleGreen
| fromString "darkseagreen" = DarkSeaGreen
| fromString "limegreen" = LimeGreen
| fromString "lime" = Lime
| fromString "forestgreen" = ForestGreen
| fromString "green" = Green
| fromString "darkgreen" = DarkGreen
| fromString "chartreuse" = Chartreuse
| fromString "lawngreen" = LawnGreen
| fromString "greenyellow" = GreenYellow
| fromString "darkolivegreen" = DarkOliveGreen
| fromString "yellowgreen" = YellowGreen
| fromString "olivedrab" = OliveDrab
| fromString "beige" = Beige
| fromString "lightgoldenrodyellow" = LightGoldenrodYellow
| fromString "ivory" = Ivory
| fromString "lightyellow" = LightYellow
| fromString "yellow" = Yellow
| fromString "olive" = Olive
| fromString "darkkhaki" = DarkKhaki
| fromString "lemonchiffon" = LemonChiffon
| fromString "palegoldenrod" = PaleGoldenrod
| fromString "khaki" = Khaki
| fromString "gold" = Gold
| fromString "cornsilk" = Cornsilk
| fromString "goldenrod" = Goldenrod
| fromString "darkgoldenrod" = DarkGoldenrod
| fromString "floralwhite" = FloralWhite
| fromString "oldlace" = OldLace
| fromString "wheat" = Wheat
| fromString "moccasin" = Moccasin
| fromString "orange" = Orange
| fromString "papayawhip" = PapayaWhip
| fromString "blanchedalmond" = BlanchedAlmond
| fromString "navajowhite" = NavajoWhite
| fromString "antiquewhite" = AntiqueWhite
| fromString "tan" = Tan
| fromString "burlywood" = BurlyWood
| fromString "bisque" = Bisque
| fromString "darkorange" = DarkOrange
| fromString "linen" = Linen
| fromString "peru" = Peru
| fromString "peachpuff" = PeachPuff
| fromString "sandybrown" = SandyBrown
| fromString "chocolate" = Chocolate
| fromString "saddlebrown" = SaddleBrown
| fromString "seashell" = Seashell
| fromString "sienna" = Sienna
| fromString "lightsalmon" = LightSalmon
| fromString "coral" = Coral
| fromString "orangered" = OrangeRed
| fromString "darksalmon" = DarkSalmon
| fromString "tomato" = Tomato
| fromString "mistyrose" = MistyRose
| fromString "salmon" = Salmon
| fromString "snow" = Snow
| fromString "lightcoral" = LightCoral
| fromString "rosybrown" = RosyBrown
| fromString "indianred" = IndianRed
| fromString "red" = Red
| fromString "brown" = Brown
| fromString "firebrick" = FireBrick
| fromString "darkred" = DarkRed
| fromString "maroon" = Maroon
| fromString "white" = White
| fromString "whitesmoke" = WhiteSmoke
| fromString "gainsboro" = Gainsboro
| fromString "lightgrey" = LightGrey
| fromString "silver" = Silver
| fromString "darkgray" = DarkGray
| fromString "gray" = Gray
| fromString "dimgray" = DimGray
| fromString "black" = Black
| fromString _ = raise Fail "X11Color.fromString: unrecognized color name"
fun toRGB LightPink = {red=0xff, green=0xb6, blue=0xc1}
| toRGB Pink = {red=0xff, green=0xc0, blue=0xcb}
| toRGB Crimson = {red=0xdc, green=0x14, blue=0x3c}
| toRGB LavenderBlush = {red=0xff, green=0xf0, blue=0xf5}
| toRGB PaleVioletRed = {red=0xdb, green=0x70, blue=0x93}
| toRGB HotPink = {red=0xff, green=0x69, blue=0xb4}
| toRGB DeepPink = {red=0xff, green=0x14, blue=0x93}
| toRGB MediumVioletRed = {red=0xc7, green=0x15, blue=0x85}
| toRGB Orchid = {red=0xda, green=0x70, blue=0xd6}
| toRGB Thistle = {red=0xd8, green=0xbf, blue=0xd8}
| toRGB Plum = {red=0xdd, green=0xa0, blue=0xdd}
| toRGB Violet = {red=0xee, green=0x82, blue=0xee}
| toRGB Magenta = {red=0xff, green=0x00, blue=0xff}
| toRGB Fuchsia = {red=0xff, green=0x00, blue=0xff}
| toRGB DarkMagenta = {red=0x8b, green=0x00, blue=0x8b}
| toRGB Purple = {red=0x80, green=0x00, blue=0x80}
| toRGB MediumOrchid = {red=0xba, green=0x55, blue=0xd3}
| toRGB DarkViolet = {red=0x94, green=0x00, blue=0xd3}
| toRGB DarkOrchid = {red=0x99, green=0x32, blue=0xcc}
| toRGB Indigo = {red=0x4b, green=0x00, blue=0x82}
| toRGB BlueViolet = {red=0x8a, green=0x2b, blue=0xe2}
| toRGB MediumPurple = {red=0x93, green=0x70, blue=0xdb}
| toRGB MediumSlateBlue = {red=0x7b, green=0x68, blue=0xee}
| toRGB SlateBlue = {red=0x6a, green=0x5a, blue=0xcd}
| toRGB DarkSlateBlue = {red=0x48, green=0x3d, blue=0x8b}
| toRGB Lavender = {red=0xe6, green=0xe6, blue=0xfa}
| toRGB GhostWhite = {red=0xf8, green=0xf8, blue=0xff}
| toRGB Blue = {red=0x00, green=0x00, blue=0xff}
| toRGB MediumBlue = {red=0x00, green=0x00, blue=0xcd}
| toRGB MidnightBlue = {red=0x19, green=0x19, blue=0x70}
| toRGB DarkBlue = {red=0x00, green=0x00, blue=0x8b}
| toRGB Navy = {red=0x00, green=0x00, blue=0x80}
| toRGB RoyalBlue = {red=0x41, green=0x69, blue=0xe1}
| toRGB CornflowerBlue = {red=0x64, green=0x95, blue=0xed}
| toRGB LightSteelBlue = {red=0xb0, green=0xc4, blue=0xde}
| toRGB LightSlateGray = {red=0x77, green=0x88, blue=0x99}
| toRGB SlateGray = {red=0x70, green=0x80, blue=0x90}
| toRGB DodgerBlue = {red=0x1e, green=0x90, blue=0xff}
| toRGB AliceBlue = {red=0xf0, green=0xf8, blue=0xff}
| toRGB SteelBlue = {red=0x46, green=0x82, blue=0xb4}
| toRGB LightSkyBlue = {red=0x87, green=0xce, blue=0xfa}
| toRGB SkyBlue = {red=0x87, green=0xce, blue=0xeb}
| toRGB DeepSkyBlue = {red=0x00, green=0xbf, blue=0xff}
| toRGB LightBlue = {red=0xad, green=0xd8, blue=0xe6}
| toRGB PowderBlue = {red=0xb0, green=0xe0, blue=0xe6}
| toRGB CadetBlue = {red=0x5f, green=0x9e, blue=0xa0}
| toRGB Azure = {red=0xf0, green=0xff, blue=0xff}
| toRGB LightCyan = {red=0xe0, green=0xff, blue=0xff}
| toRGB PaleTurquoise = {red=0xaf, green=0xee, blue=0xee}
| toRGB Cyan = {red=0x00, green=0xff, blue=0xff}
| toRGB Aqua = {red=0x00, green=0xff, blue=0xff}
| toRGB DarkTurquoise = {red=0x00, green=0xce, blue=0xd1}
| toRGB DarkSlateGray = {red=0x2f, green=0x4f, blue=0x4f}
| toRGB DarkCyan = {red=0x00, green=0x8b, blue=0x8b}
| toRGB Teal = {red=0x00, green=0x80, blue=0x80}
| toRGB MediumTurquoise = {red=0x48, green=0xd1, blue=0xcc}
| toRGB LightSeaGreen = {red=0x20, green=0xb2, blue=0xaa}
| toRGB Turquoise = {red=0x40, green=0xe0, blue=0xd0}
| toRGB Aquamarine = {red=0x7f, green=0xff, blue=0xd4}
| toRGB MediumAquamarine = {red=0x66, green=0xcd, blue=0xaa}
| toRGB MediumSpringGreen = {red=0x00, green=0xfa, blue=0x9a}
| toRGB MintCream = {red=0xf5, green=0xff, blue=0xfa}
| toRGB SpringGreen = {red=0x00, green=0xff, blue=0x7f}
| toRGB MediumSeaGreen = {red=0x3c, green=0xb3, blue=0x71}
| toRGB SeaGreen = {red=0x2e, green=0x8b, blue=0x57}
| toRGB Honeydew = {red=0xf0, green=0xff, blue=0xf0}
| toRGB LightGreen = {red=0x90, green=0xee, blue=0x90}
| toRGB PaleGreen = {red=0x98, green=0xfb, blue=0x98}
| toRGB DarkSeaGreen = {red=0x8f, green=0xbc, blue=0x8f}
| toRGB LimeGreen = {red=0x32, green=0xcd, blue=0x32}
| toRGB Lime = {red=0x00, green=0xff, blue=0x00}
| toRGB ForestGreen = {red=0x22, green=0x8b, blue=0x22}
| toRGB Green = {red=0x00, green=0x80, blue=0x00}
| toRGB DarkGreen = {red=0x00, green=0x64, blue=0x00}
| toRGB Chartreuse = {red=0x7f, green=0xff, blue=0x00}
| toRGB LawnGreen = {red=0x7c, green=0xfc, blue=0x00}
| toRGB GreenYellow = {red=0xad, green=0xff, blue=0x2f}
| toRGB DarkOliveGreen = {red=0x55, green=0x6b, blue=0x2f}
| toRGB YellowGreen = {red=0x9a, green=0xcd, blue=0x32}
| toRGB OliveDrab = {red=0x6b, green=0x8e, blue=0x23}
| toRGB Beige = {red=0xf5, green=0xf5, blue=0xdc}
| toRGB LightGoldenrodYellow = {red=0xfa, green=0xfa, blue=0xd2}
| toRGB Ivory = {red=0xff, green=0xff, blue=0xf0}
| toRGB LightYellow = {red=0xff, green=0xff, blue=0xe0}
| toRGB Yellow = {red=0xff, green=0xff, blue=0x00}
| toRGB Olive = {red=0x80, green=0x80, blue=0x00}
| toRGB DarkKhaki = {red=0xbd, green=0xb7, blue=0x6b}
| toRGB LemonChiffon = {red=0xff, green=0xfa, blue=0xcd}
| toRGB PaleGoldenrod = {red=0xee, green=0xe8, blue=0xaa}
| toRGB Khaki = {red=0xf0, green=0xe6, blue=0x8c}
| toRGB Gold = {red=0xff, green=0xd7, blue=0x00}
| toRGB Cornsilk = {red=0xff, green=0xf8, blue=0xdc}
| toRGB Goldenrod = {red=0xda, green=0xa5, blue=0x20}
| toRGB DarkGoldenrod = {red=0xb8, green=0x86, blue=0x0b}
| toRGB FloralWhite = {red=0xff, green=0xfa, blue=0xf0}
| toRGB OldLace = {red=0xfd, green=0xf5, blue=0xe6}
| toRGB Wheat = {red=0xf5, green=0xde, blue=0xb3}
| toRGB Moccasin = {red=0xff, green=0xe4, blue=0xb5}
| toRGB Orange = {red=0xff, green=0xa5, blue=0x00}
| toRGB PapayaWhip = {red=0xff, green=0xef, blue=0xd5}
| toRGB BlanchedAlmond = {red=0xff, green=0xeb, blue=0xcd}
| toRGB NavajoWhite = {red=0xff, green=0xde, blue=0xad}
| toRGB AntiqueWhite = {red=0xfa, green=0xeb, blue=0xd7}
| toRGB Tan = {red=0xd2, green=0xb4, blue=0x8c}
| toRGB BurlyWood = {red=0xde, green=0xb8, blue=0x87}
| toRGB Bisque = {red=0xff, green=0xe4, blue=0xc4}
| toRGB DarkOrange = {red=0xff, green=0x8c, blue=0x00}
| toRGB Linen = {red=0xfa, green=0xf0, blue=0xe6}
| toRGB Peru = {red=0xcd, green=0x85, blue=0x3f}
| toRGB PeachPuff = {red=0xff, green=0xda, blue=0xb9}
| toRGB SandyBrown = {red=0xf4, green=0xa4, blue=0x60}
| toRGB Chocolate = {red=0xd2, green=0x69, blue=0x1e}
| toRGB SaddleBrown = {red=0x8b, green=0x45, blue=0x13}
| toRGB Seashell = {red=0xff, green=0xf5, blue=0xee}
| toRGB Sienna = {red=0xa0, green=0x52, blue=0x2d}
| toRGB LightSalmon = {red=0xff, green=0xa0, blue=0x7a}
| toRGB Coral = {red=0xff, green=0x7f, blue=0x50}
| toRGB OrangeRed = {red=0xff, green=0x45, blue=0x00}
| toRGB DarkSalmon = {red=0xe9, green=0x96, blue=0x7a}
| toRGB Tomato = {red=0xff, green=0x63, blue=0x47}
| toRGB MistyRose = {red=0xff, green=0xe4, blue=0xe1}
| toRGB Salmon = {red=0xfa, green=0x80, blue=0x72}
| toRGB Snow = {red=0xff, green=0xfa, blue=0xfa}
| toRGB LightCoral = {red=0xf0, green=0x80, blue=0x80}
| toRGB RosyBrown = {red=0xbc, green=0x8f, blue=0x8f}
| toRGB IndianRed = {red=0xcd, green=0x5c, blue=0x5c}
| toRGB Red = {red=0xff, green=0x00, blue=0x00}
| toRGB Brown = {red=0xa5, green=0x2a, blue=0x2a}
| toRGB FireBrick = {red=0xb2, green=0x22, blue=0x22}
| toRGB DarkRed = {red=0x8b, green=0x00, blue=0x00}
| toRGB Maroon = {red=0x80, green=0x00, blue=0x00}
| toRGB White = {red=0xff, green=0xff, blue=0xff}
| toRGB WhiteSmoke = {red=0xf5, green=0xf5, blue=0xf5}
| toRGB Gainsboro = {red=0xdc, green=0xdc, blue=0xdc}
| toRGB LightGrey = {red=0xd3, green=0xd3, blue=0xd3}
| toRGB Silver = {red=0xc0, green=0xc0, blue=0xc0}
| toRGB DarkGray = {red=0xa9, green=0xa9, blue=0xa9}
| toRGB Gray = {red=0x80, green=0x80, blue=0x80}
| toRGB DimGray = {red=0x69, green=0x69, blue=0x69}
| toRGB Black = {red=0x00, green=0x00, blue=0x00}
local
fun readint ss = valOf (Int.scan StringCvt.HEX Substring.getc ss)
in
fun rgbFromString s = if size s <> 7 then NONE
else let
val ss = Substring.full s
val f = valOf (Substring.first ss)
val (r, _) = readint (Substring.slice (ss, 1, SOME 2))
val (g, _) = readint (Substring.slice (ss, 3, SOME 2))
val (b, _) = readint (Substring.slice (ss, 5, SOME 2))
in if f= #"#" then SOME {red=r,green=g,blue=b} else NONE end
handle Option => NONE
end (* local *)
end