%{
#include "platform/graphics/Color.h"
#include <string.h>

namespace blink {
%}
%struct-type
struct NamedColor;
%omit-struct-type
%language=C++
%readonly-tables
%global-table
%compare-strncmp
%define class-name ColorDataHash
%define lookup-function-name findColorImpl
%define hash-function-name colordata_hash_function
%enum
%%
aliceblue, 0xfff0f8ff
antiquewhite, 0xfffaebd7
aqua, 0xff00ffff
aquamarine, 0xff7fffd4
azure, 0xfff0ffff
beige, 0xfff5f5dc
bisque, 0xffffe4c4
black, 0xff000000
blanchedalmond, 0xffffebcd
blue, 0xff0000ff
blueviolet, 0xff8a2be2
brown, 0xffa52a2a
burlywood, 0xffdeb887
cadetblue, 0xff5f9ea0
chartreuse, 0xff7fff00
chocolate, 0xffd2691e
coral, 0xffff7f50
cornflowerblue, 0xff6495ed
cornsilk, 0xfffff8dc
crimson, 0xffdc143c
cyan, 0xff00ffff
darkblue, 0xff00008b
darkcyan, 0xff008b8b
darkgoldenrod, 0xffb8860b
darkgray, 0xffa9a9a9
darkgrey, 0xffa9a9a9
darkgreen, 0xff006400
darkkhaki, 0xffbdb76b
darkmagenta, 0xff8b008b
darkolivegreen, 0xff556b2f
darkorange, 0xffff8c00
darkorchid, 0xff9932cc
darkred, 0xff8b0000
darksalmon, 0xffe9967a
darkseagreen, 0xff8fbc8f
darkslateblue, 0xff483d8b
darkslategray, 0xff2f4f4f
darkslategrey, 0xff2f4f4f
darkturquoise, 0xff00ced1
darkviolet, 0xff9400d3
deeppink, 0xffff1493
deepskyblue, 0xff00bfff
dimgray, 0xff696969
dimgrey, 0xff696969
dodgerblue, 0xff1e90ff
firebrick, 0xffb22222
floralwhite, 0xfffffaf0
forestgreen, 0xff228b22
fuchsia, 0xffff00ff
gainsboro, 0xffdcdcdc
ghostwhite, 0xfff8f8ff
gold, 0xffffd700
goldenrod, 0xffdaa520
gray, 0xff808080
grey, 0xff808080
green, 0xff008000
greenyellow, 0xffadff2f
honeydew, 0xfff0fff0
hotpink, 0xffff69b4
indianred, 0xffcd5c5c
indigo, 0xff4b0082
ivory, 0xfffffff0
khaki, 0xfff0e68c
lavender, 0xffe6e6fa
lavenderblush, 0xfffff0f5
lawngreen, 0xff7cfc00
lemonchiffon, 0xfffffacd
lightblue, 0xffadd8e6
lightcoral, 0xfff08080
lightcyan, 0xffe0ffff
lightgoldenrodyellow, 0xfffafad2
lightgray, 0xffd3d3d3
lightgrey, 0xffd3d3d3
lightgreen, 0xff90ee90
lightpink, 0xffffb6c1
lightsalmon, 0xffffa07a
lightseagreen, 0xff20b2aa
lightskyblue, 0xff87cefa
lightslateblue, 0xff8470ff
lightslategray, 0xff778899
lightslategrey, 0xff778899
lightsteelblue, 0xffb0c4de
lightyellow, 0xffffffe0
lime, 0xff00ff00
limegreen, 0xff32cd32
linen, 0xfffaf0e6
magenta, 0xffff00ff
maroon, 0xff800000
mediumaquamarine, 0xff66cdaa
mediumblue, 0xff0000cd
mediumorchid, 0xffba55d3
mediumpurple, 0xff9370db
mediumseagreen, 0xff3cb371
mediumslateblue, 0xff7b68ee
mediumspringgreen, 0xff00fa9a
mediumturquoise, 0xff48d1cc
mediumvioletred, 0xffc71585
midnightblue, 0xff191970
mintcream, 0xfff5fffa
mistyrose, 0xffffe4e1
moccasin, 0xffffe4b5
navajowhite, 0xffffdead
navy, 0xff000080
oldlace, 0xfffdf5e6
olive, 0xff808000
olivedrab, 0xff6b8e23
orange, 0xffffa500
orangered, 0xffff4500
orchid, 0xffda70d6
palegoldenrod, 0xffeee8aa
palegreen, 0xff98fb98
paleturquoise, 0xffafeeee
palevioletred, 0xffdb7093
papayawhip, 0xffffefd5
peachpuff, 0xffffdab9
peru, 0xffcd853f
pink, 0xffffc0cb
plum, 0xffdda0dd
powderblue, 0xffb0e0e6
purple, 0xff800080
rebeccapurple, 0xff663399
red, 0xffff0000
rosybrown, 0xffbc8f8f
royalblue, 0xff4169e1
saddlebrown, 0xff8b4513
salmon, 0xfffa8072
sandybrown, 0xfff4a460
seagreen, 0xff2e8b57
seashell, 0xfffff5ee
sienna, 0xffa0522d
silver, 0xffc0c0c0
skyblue, 0xff87ceeb
slateblue, 0xff6a5acd
slategray, 0xff708090
slategrey, 0xff708090
snow, 0xfffffafa
springgreen, 0xff00ff7f
steelblue, 0xff4682b4
tan, 0xffd2b48c
teal, 0xff008080
thistle, 0xffd8bfd8
tomato, 0xffff6347
transparent, 0x00000000
turquoise, 0xff40e0d0
violet, 0xffee82ee
violetred, 0xffd02090
wheat, 0xfff5deb3
white, 0xffffffff
whitesmoke, 0xfff5f5f5
yellow, 0xffffff00
yellowgreen, 0xff9acd32
%%
const struct NamedColor* findColor(register const char* str, register unsigned len)
{
    return ColorDataHash::findColorImpl(str, len);
}

} // namespace blink
