#include "sass.hpp"
#include "ast.hpp"
#include "color_maps.hpp"
namespace Sass {
namespace ColorNames
{
const char aliceblue [] = "aliceblue";
const char antiquewhite [] = "antiquewhite";
const char cyan [] = "cyan";
const char aqua [] = "aqua";
const char aquamarine [] = "aquamarine";
const char azure [] = "azure";
const char beige [] = "beige";
const char bisque [] = "bisque";
const char black [] = "black";
const char blanchedalmond [] = "blanchedalmond";
const char blue [] = "blue";
const char blueviolet [] = "blueviolet";
const char brown [] = "brown";
const char burlywood [] = "burlywood";
const char cadetblue [] = "cadetblue";
const char chartreuse [] = "chartreuse";
const char chocolate [] = "chocolate";
const char coral [] = "coral";
const char cornflowerblue [] = "cornflowerblue";
const char cornsilk [] = "cornsilk";
const char crimson [] = "crimson";
const char darkblue [] = "darkblue";
const char darkcyan [] = "darkcyan";
const char darkgoldenrod [] = "darkgoldenrod";
const char darkgray [] = "darkgray";
const char darkgrey [] = "darkgrey";
const char darkgreen [] = "darkgreen";
const char darkkhaki [] = "darkkhaki";
const char darkmagenta [] = "darkmagenta";
const char darkolivegreen [] = "darkolivegreen";
const char darkorange [] = "darkorange";
const char darkorchid [] = "darkorchid";
const char darkred [] = "darkred";
const char darksalmon [] = "darksalmon";
const char darkseagreen [] = "darkseagreen";
const char darkslateblue [] = "darkslateblue";
const char darkslategray [] = "darkslategray";
const char darkslategrey [] = "darkslategrey";
const char darkturquoise [] = "darkturquoise";
const char darkviolet [] = "darkviolet";
const char deeppink [] = "deeppink";
const char deepskyblue [] = "deepskyblue";
const char dimgray [] = "dimgray";
const char dimgrey [] = "dimgrey";
const char dodgerblue [] = "dodgerblue";
const char firebrick [] = "firebrick";
const char floralwhite [] = "floralwhite";
const char forestgreen [] = "forestgreen";
const char magenta [] = "magenta";
const char fuchsia [] = "fuchsia";
const char gainsboro [] = "gainsboro";
const char ghostwhite [] = "ghostwhite";
const char gold [] = "gold";
const char goldenrod [] = "goldenrod";
const char gray [] = "gray";
const char grey [] = "grey";
const char green [] = "green";
const char greenyellow [] = "greenyellow";
const char honeydew [] = "honeydew";
const char hotpink [] = "hotpink";
const char indianred [] = "indianred";
const char indigo [] = "indigo";
const char ivory [] = "ivory";
const char khaki [] = "khaki";
const char lavender [] = "lavender";
const char lavenderblush [] = "lavenderblush";
const char lawngreen [] = "lawngreen";
const char lemonchiffon [] = "lemonchiffon";
const char lightblue [] = "lightblue";
const char lightcoral [] = "lightcoral";
const char lightcyan [] = "lightcyan";
const char lightgoldenrodyellow [] = "lightgoldenrodyellow";
const char lightgray [] = "lightgray";
const char lightgrey [] = "lightgrey";
const char lightgreen [] = "lightgreen";
const char lightpink [] = "lightpink";
const char lightsalmon [] = "lightsalmon";
const char lightseagreen [] = "lightseagreen";
const char lightskyblue [] = "lightskyblue";
const char lightslategray [] = "lightslategray";
const char lightslategrey [] = "lightslategrey";
const char lightsteelblue [] = "lightsteelblue";
const char lightyellow [] = "lightyellow";
const char lime [] = "lime";
const char limegreen [] = "limegreen";
const char linen [] = "linen";
const char maroon [] = "maroon";
const char mediumaquamarine [] = "mediumaquamarine";
const char mediumblue [] = "mediumblue";
const char mediumorchid [] = "mediumorchid";
const char mediumpurple [] = "mediumpurple";
const char mediumseagreen [] = "mediumseagreen";
const char mediumslateblue [] = "mediumslateblue";
const char mediumspringgreen [] = "mediumspringgreen";
const char mediumturquoise [] = "mediumturquoise";
const char mediumvioletred [] = "mediumvioletred";
const char midnightblue [] = "midnightblue";
const char mintcream [] = "mintcream";
const char mistyrose [] = "mistyrose";
const char moccasin [] = "moccasin";
const char navajowhite [] = "navajowhite";
const char navy [] = "navy";
const char oldlace [] = "oldlace";
const char olive [] = "olive";
const char olivedrab [] = "olivedrab";
const char orange [] = "orange";
const char orangered [] = "orangered";
const char orchid [] = "orchid";
const char palegoldenrod [] = "palegoldenrod";
const char palegreen [] = "palegreen";
const char paleturquoise [] = "paleturquoise";
const char palevioletred [] = "palevioletred";
const char papayawhip [] = "papayawhip";
const char peachpuff [] = "peachpuff";
const char peru [] = "peru";
const char pink [] = "pink";
const char plum [] = "plum";
const char powderblue [] = "powderblue";
const char purple [] = "purple";
const char red [] = "red";
const char rosybrown [] = "rosybrown";
const char royalblue [] = "royalblue";
const char saddlebrown [] = "saddlebrown";
const char salmon [] = "salmon";
const char sandybrown [] = "sandybrown";
const char seagreen [] = "seagreen";
const char seashell [] = "seashell";
const char sienna [] = "sienna";
const char silver [] = "silver";
const char skyblue [] = "skyblue";
const char slateblue [] = "slateblue";
const char slategray [] = "slategray";
const char slategrey [] = "slategrey";
const char snow [] = "snow";
const char springgreen [] = "springgreen";
const char steelblue [] = "steelblue";
const char tan [] = "tan";
const char teal [] = "teal";
const char thistle [] = "thistle";
const char tomato [] = "tomato";
const char turquoise [] = "turquoise";
const char violet [] = "violet";
const char wheat [] = "wheat";
const char white [] = "white";
const char whitesmoke [] = "whitesmoke";
const char yellow [] = "yellow";
const char yellowgreen [] = "yellowgreen";
const char rebeccapurple [] = "rebeccapurple";
const char transparent [] = "transparent";
}
namespace Colors {
const ParserState color_table("[COLOR TABLE]");
const Color aliceblue(color_table, 240, 248, 255, 1);
const Color antiquewhite(color_table, 250, 235, 215, 1);
const Color cyan(color_table, 0, 255, 255, 1);
const Color aqua(color_table, 0, 255, 255, 1);
const Color aquamarine(color_table, 127, 255, 212, 1);
const Color azure(color_table, 240, 255, 255, 1);
const Color beige(color_table, 245, 245, 220, 1);
const Color bisque(color_table, 255, 228, 196, 1);
const Color black(color_table, 0, 0, 0, 1);
const Color blanchedalmond(color_table, 255, 235, 205, 1);
const Color blue(color_table, 0, 0, 255, 1);
const Color blueviolet(color_table, 138, 43, 226, 1);
const Color brown(color_table, 165, 42, 42, 1);
const Color burlywood(color_table, 222, 184, 135, 1);
const Color cadetblue(color_table, 95, 158, 160, 1);
const Color chartreuse(color_table, 127, 255, 0, 1);
const Color chocolate(color_table, 210, 105, 30, 1);
const Color coral(color_table, 255, 127, 80, 1);
const Color cornflowerblue(color_table, 100, 149, 237, 1);
const Color cornsilk(color_table, 255, 248, 220, 1);
const Color crimson(color_table, 220, 20, 60, 1);
const Color darkblue(color_table, 0, 0, 139, 1);
const Color darkcyan(color_table, 0, 139, 139, 1);
const Color darkgoldenrod(color_table, 184, 134, 11, 1);
const Color darkgray(color_table, 169, 169, 169, 1);
const Color darkgrey(color_table, 169, 169, 169, 1);
const Color darkgreen(color_table, 0, 100, 0, 1);
const Color darkkhaki(color_table, 189, 183, 107, 1);
const Color darkmagenta(color_table, 139, 0, 139, 1);
const Color darkolivegreen(color_table, 85, 107, 47, 1);
const Color darkorange(color_table, 255, 140, 0, 1);
const Color darkorchid(color_table, 153, 50, 204, 1);
const Color darkred(color_table, 139, 0, 0, 1);
const Color darksalmon(color_table, 233, 150, 122, 1);
const Color darkseagreen(color_table, 143, 188, 143, 1);
const Color darkslateblue(color_table, 72, 61, 139, 1);
const Color darkslategray(color_table, 47, 79, 79, 1);
const Color darkslategrey(color_table, 47, 79, 79, 1);
const Color darkturquoise(color_table, 0, 206, 209, 1);
const Color darkviolet(color_table, 148, 0, 211, 1);
const Color deeppink(color_table, 255, 20, 147, 1);
const Color deepskyblue(color_table, 0, 191, 255, 1);
const Color dimgray(color_table, 105, 105, 105, 1);
const Color dimgrey(color_table, 105, 105, 105, 1);
const Color dodgerblue(color_table, 30, 144, 255, 1);
const Color firebrick(color_table, 178, 34, 34, 1);
const Color floralwhite(color_table, 255, 250, 240, 1);
const Color forestgreen(color_table, 34, 139, 34, 1);
const Color magenta(color_table, 255, 0, 255, 1);
const Color fuchsia(color_table, 255, 0, 255, 1);
const Color gainsboro(color_table, 220, 220, 220, 1);
const Color ghostwhite(color_table, 248, 248, 255, 1);
const Color gold(color_table, 255, 215, 0, 1);
const Color goldenrod(color_table, 218, 165, 32, 1);
const Color gray(color_table, 128, 128, 128, 1);
const Color grey(color_table, 128, 128, 128, 1);
const Color green(color_table, 0, 128, 0, 1);
const Color greenyellow(color_table, 173, 255, 47, 1);
const Color honeydew(color_table, 240, 255, 240, 1);
const Color hotpink(color_table, 255, 105, 180, 1);
const Color indianred(color_table, 205, 92, 92, 1);
const Color indigo(color_table, 75, 0, 130, 1);
const Color ivory(color_table, 255, 255, 240, 1);
const Color khaki(color_table, 240, 230, 140, 1);
const Color lavender(color_table, 230, 230, 250, 1);
const Color lavenderblush(color_table, 255, 240, 245, 1);
const Color lawngreen(color_table, 124, 252, 0, 1);
const Color lemonchiffon(color_table, 255, 250, 205, 1);
const Color lightblue(color_table, 173, 216, 230, 1);
const Color lightcoral(color_table, 240, 128, 128, 1);
const Color lightcyan(color_table, 224, 255, 255, 1);
const Color lightgoldenrodyellow(color_table, 250, 250, 210, 1);
const Color lightgray(color_table, 211, 211, 211, 1);
const Color lightgrey(color_table, 211, 211, 211, 1);
const Color lightgreen(color_table, 144, 238, 144, 1);
const Color lightpink(color_table, 255, 182, 193, 1);
const Color lightsalmon(color_table, 255, 160, 122, 1);
const Color lightseagreen(color_table, 32, 178, 170, 1);
const Color lightskyblue(color_table, 135, 206, 250, 1);
const Color lightslategray(color_table, 119, 136, 153, 1);
const Color lightslategrey(color_table, 119, 136, 153, 1);
const Color lightsteelblue(color_table, 176, 196, 222, 1);
const Color lightyellow(color_table, 255, 255, 224, 1);
const Color lime(color_table, 0, 255, 0, 1);
const Color limegreen(color_table, 50, 205, 50, 1);
const Color linen(color_table, 250, 240, 230, 1);
const Color maroon(color_table, 128, 0, 0, 1);
const Color mediumaquamarine(color_table, 102, 205, 170, 1);
const Color mediumblue(color_table, 0, 0, 205, 1);
const Color mediumorchid(color_table, 186, 85, 211, 1);
const Color mediumpurple(color_table, 147, 112, 219, 1);
const Color mediumseagreen(color_table, 60, 179, 113, 1);
const Color mediumslateblue(color_table, 123, 104, 238, 1);
const Color mediumspringgreen(color_table, 0, 250, 154, 1);
const Color mediumturquoise(color_table, 72, 209, 204, 1);
const Color mediumvioletred(color_table, 199, 21, 133, 1);
const Color midnightblue(color_table, 25, 25, 112, 1);
const Color mintcream(color_table, 245, 255, 250, 1);
const Color mistyrose(color_table, 255, 228, 225, 1);
const Color moccasin(color_table, 255, 228, 181, 1);
const Color navajowhite(color_table, 255, 222, 173, 1);
const Color navy(color_table, 0, 0, 128, 1);
const Color oldlace(color_table, 253, 245, 230, 1);
const Color olive(color_table, 128, 128, 0, 1);
const Color olivedrab(color_table, 107, 142, 35, 1);
const Color orange(color_table, 255, 165, 0, 1);
const Color orangered(color_table, 255, 69, 0, 1);
const Color orchid(color_table, 218, 112, 214, 1);
const Color palegoldenrod(color_table, 238, 232, 170, 1);
const Color palegreen(color_table, 152, 251, 152, 1);
const Color paleturquoise(color_table, 175, 238, 238, 1);
const Color palevioletred(color_table, 219, 112, 147, 1);
const Color papayawhip(color_table, 255, 239, 213, 1);
const Color peachpuff(color_table, 255, 218, 185, 1);
const Color peru(color_table, 205, 133, 63, 1);
const Color pink(color_table, 255, 192, 203, 1);
const Color plum(color_table, 221, 160, 221, 1);
const Color powderblue(color_table, 176, 224, 230, 1);
const Color purple(color_table, 128, 0, 128, 1);
const Color red(color_table, 255, 0, 0, 1);
const Color rosybrown(color_table, 188, 143, 143, 1);
const Color royalblue(color_table, 65, 105, 225, 1);
const Color saddlebrown(color_table, 139, 69, 19, 1);
const Color salmon(color_table, 250, 128, 114, 1);
const Color sandybrown(color_table, 244, 164, 96, 1);
const Color seagreen(color_table, 46, 139, 87, 1);
const Color seashell(color_table, 255, 245, 238, 1);
const Color sienna(color_table, 160, 82, 45, 1);
const Color silver(color_table, 192, 192, 192, 1);
const Color skyblue(color_table, 135, 206, 235, 1);
const Color slateblue(color_table, 106, 90, 205, 1);
const Color slategray(color_table, 112, 128, 144, 1);
const Color slategrey(color_table, 112, 128, 144, 1);
const Color snow(color_table, 255, 250, 250, 1);
const Color springgreen(color_table, 0, 255, 127, 1);
const Color steelblue(color_table, 70, 130, 180, 1);
const Color tan(color_table, 210, 180, 140, 1);
const Color teal(color_table, 0, 128, 128, 1);
const Color thistle(color_table, 216, 191, 216, 1);
const Color tomato(color_table, 255, 99, 71, 1);
const Color turquoise(color_table, 64, 224, 208, 1);
const Color violet(color_table, 238, 130, 238, 1);
const Color wheat(color_table, 245, 222, 179, 1);
const Color white(color_table, 255, 255, 255, 1);
const Color whitesmoke(color_table, 245, 245, 245, 1);
const Color yellow(color_table, 255, 255, 0, 1);
const Color yellowgreen(color_table, 154, 205, 50, 1);
const Color rebeccapurple(color_table, 102, 51, 153, 1);
const Color transparent(color_table, 0, 0, 0, 0);
}
const std::map<const int, const char*> colors_to_names {
{ 240 * 0x10000 + 248 * 0x100 + 255, ColorNames::aliceblue },
{ 250 * 0x10000 + 235 * 0x100 + 215, ColorNames::antiquewhite },
{ 0 * 0x10000 + 255 * 0x100 + 255, ColorNames::cyan },
{ 127 * 0x10000 + 255 * 0x100 + 212, ColorNames::aquamarine },
{ 240 * 0x10000 + 255 * 0x100 + 255, ColorNames::azure },
{ 245 * 0x10000 + 245 * 0x100 + 220, ColorNames::beige },
{ 255 * 0x10000 + 228 * 0x100 + 196, ColorNames::bisque },
{ 0 * 0x10000 + 0 * 0x100 + 0, ColorNames::black },
{ 255 * 0x10000 + 235 * 0x100 + 205, ColorNames::blanchedalmond },
{ 0 * 0x10000 + 0 * 0x100 + 255, ColorNames::blue },
{ 138 * 0x10000 + 43 * 0x100 + 226, ColorNames::blueviolet },
{ 165 * 0x10000 + 42 * 0x100 + 42, ColorNames::brown },
{ 222 * 0x10000 + 184 * 0x100 + 135, ColorNames::burlywood },
{ 95 * 0x10000 + 158 * 0x100 + 160, ColorNames::cadetblue },
{ 127 * 0x10000 + 255 * 0x100 + 0, ColorNames::chartreuse },
{ 210 * 0x10000 + 105 * 0x100 + 30, ColorNames::chocolate },
{ 255 * 0x10000 + 127 * 0x100 + 80, ColorNames::coral },
{ 100 * 0x10000 + 149 * 0x100 + 237, ColorNames::cornflowerblue },
{ 255 * 0x10000 + 248 * 0x100 + 220, ColorNames::cornsilk },
{ 220 * 0x10000 + 20 * 0x100 + 60, ColorNames::crimson },
{ 0 * 0x10000 + 0 * 0x100 + 139, ColorNames::darkblue },
{ 0 * 0x10000 + 139 * 0x100 + 139, ColorNames::darkcyan },
{ 184 * 0x10000 + 134 * 0x100 + 11, ColorNames::darkgoldenrod },
{ 169 * 0x10000 + 169 * 0x100 + 169, ColorNames::darkgray },
{ 0 * 0x10000 + 100 * 0x100 + 0, ColorNames::darkgreen },
{ 189 * 0x10000 + 183 * 0x100 + 107, ColorNames::darkkhaki },
{ 139 * 0x10000 + 0 * 0x100 + 139, ColorNames::darkmagenta },
{ 85 * 0x10000 + 107 * 0x100 + 47, ColorNames::darkolivegreen },
{ 255 * 0x10000 + 140 * 0x100 + 0, ColorNames::darkorange },
{ 153 * 0x10000 + 50 * 0x100 + 204, ColorNames::darkorchid },
{ 139 * 0x10000 + 0 * 0x100 + 0, ColorNames::darkred },
{ 233 * 0x10000 + 150 * 0x100 + 122, ColorNames::darksalmon },
{ 143 * 0x10000 + 188 * 0x100 + 143, ColorNames::darkseagreen },
{ 72 * 0x10000 + 61 * 0x100 + 139, ColorNames::darkslateblue },
{ 47 * 0x10000 + 79 * 0x100 + 79, ColorNames::darkslategray },
{ 0 * 0x10000 + 206 * 0x100 + 209, ColorNames::darkturquoise },
{ 148 * 0x10000 + 0 * 0x100 + 211, ColorNames::darkviolet },
{ 255 * 0x10000 + 20 * 0x100 + 147, ColorNames::deeppink },
{ 0 * 0x10000 + 191 * 0x100 + 255, ColorNames::deepskyblue },
{ 105 * 0x10000 + 105 * 0x100 + 105, ColorNames::dimgray },
{ 30 * 0x10000 + 144 * 0x100 + 255, ColorNames::dodgerblue },
{ 178 * 0x10000 + 34 * 0x100 + 34, ColorNames::firebrick },
{ 255 * 0x10000 + 250 * 0x100 + 240, ColorNames::floralwhite },
{ 34 * 0x10000 + 139 * 0x100 + 34, ColorNames::forestgreen },
{ 255 * 0x10000 + 0 * 0x100 + 255, ColorNames::magenta },
{ 220 * 0x10000 + 220 * 0x100 + 220, ColorNames::gainsboro },
{ 248 * 0x10000 + 248 * 0x100 + 255, ColorNames::ghostwhite },
{ 255 * 0x10000 + 215 * 0x100 + 0, ColorNames::gold },
{ 218 * 0x10000 + 165 * 0x100 + 32, ColorNames::goldenrod },
{ 128 * 0x10000 + 128 * 0x100 + 128, ColorNames::gray },
{ 0 * 0x10000 + 128 * 0x100 + 0, ColorNames::green },
{ 173 * 0x10000 + 255 * 0x100 + 47, ColorNames::greenyellow },
{ 240 * 0x10000 + 255 * 0x100 + 240, ColorNames::honeydew },
{ 255 * 0x10000 + 105 * 0x100 + 180, ColorNames::hotpink },
{ 205 * 0x10000 + 92 * 0x100 + 92, ColorNames::indianred },
{ 75 * 0x10000 + 0 * 0x100 + 130, ColorNames::indigo },
{ 255 * 0x10000 + 255 * 0x100 + 240, ColorNames::ivory },
{ 240 * 0x10000 + 230 * 0x100 + 140, ColorNames::khaki },
{ 230 * 0x10000 + 230 * 0x100 + 250, ColorNames::lavender },
{ 255 * 0x10000 + 240 * 0x100 + 245, ColorNames::lavenderblush },
{ 124 * 0x10000 + 252 * 0x100 + 0, ColorNames::lawngreen },
{ 255 * 0x10000 + 250 * 0x100 + 205, ColorNames::lemonchiffon },
{ 173 * 0x10000 + 216 * 0x100 + 230, ColorNames::lightblue },
{ 240 * 0x10000 + 128 * 0x100 + 128, ColorNames::lightcoral },
{ 224 * 0x10000 + 255 * 0x100 + 255, ColorNames::lightcyan },
{ 250 * 0x10000 + 250 * 0x100 + 210, ColorNames::lightgoldenrodyellow },
{ 211 * 0x10000 + 211 * 0x100 + 211, ColorNames::lightgray },
{ 144 * 0x10000 + 238 * 0x100 + 144, ColorNames::lightgreen },
{ 255 * 0x10000 + 182 * 0x100 + 193, ColorNames::lightpink },
{ 255 * 0x10000 + 160 * 0x100 + 122, ColorNames::lightsalmon },
{ 32 * 0x10000 + 178 * 0x100 + 170, ColorNames::lightseagreen },
{ 135 * 0x10000 + 206 * 0x100 + 250, ColorNames::lightskyblue },
{ 119 * 0x10000 + 136 * 0x100 + 153, ColorNames::lightslategray },
{ 176 * 0x10000 + 196 * 0x100 + 222, ColorNames::lightsteelblue },
{ 255 * 0x10000 + 255 * 0x100 + 224, ColorNames::lightyellow },
{ 0 * 0x10000 + 255 * 0x100 + 0, ColorNames::lime },
{ 50 * 0x10000 + 205 * 0x100 + 50, ColorNames::limegreen },
{ 250 * 0x10000 + 240 * 0x100 + 230, ColorNames::linen },
{ 128 * 0x10000 + 0 * 0x100 + 0, ColorNames::maroon },
{ 102 * 0x10000 + 205 * 0x100 + 170, ColorNames::mediumaquamarine },
{ 0 * 0x10000 + 0 * 0x100 + 205, ColorNames::mediumblue },
{ 186 * 0x10000 + 85 * 0x100 + 211, ColorNames::mediumorchid },
{ 147 * 0x10000 + 112 * 0x100 + 219, ColorNames::mediumpurple },
{ 60 * 0x10000 + 179 * 0x100 + 113, ColorNames::mediumseagreen },
{ 123 * 0x10000 + 104 * 0x100 + 238, ColorNames::mediumslateblue },
{ 0 * 0x10000 + 250 * 0x100 + 154, ColorNames::mediumspringgreen },
{ 72 * 0x10000 + 209 * 0x100 + 204, ColorNames::mediumturquoise },
{ 199 * 0x10000 + 21 * 0x100 + 133, ColorNames::mediumvioletred },
{ 25 * 0x10000 + 25 * 0x100 + 112, ColorNames::midnightblue },
{ 245 * 0x10000 + 255 * 0x100 + 250, ColorNames::mintcream },
{ 255 * 0x10000 + 228 * 0x100 + 225, ColorNames::mistyrose },
{ 255 * 0x10000 + 228 * 0x100 + 181, ColorNames::moccasin },
{ 255 * 0x10000 + 222 * 0x100 + 173, ColorNames::navajowhite },
{ 0 * 0x10000 + 0 * 0x100 + 128, ColorNames::navy },
{ 253 * 0x10000 + 245 * 0x100 + 230, ColorNames::oldlace },
{ 128 * 0x10000 + 128 * 0x100 + 0, ColorNames::olive },
{ 107 * 0x10000 + 142 * 0x100 + 35, ColorNames::olivedrab },
{ 255 * 0x10000 + 165 * 0x100 + 0, ColorNames::orange },
{ 255 * 0x10000 + 69 * 0x100 + 0, ColorNames::orangered },
{ 218 * 0x10000 + 112 * 0x100 + 214, ColorNames::orchid },
{ 238 * 0x10000 + 232 * 0x100 + 170, ColorNames::palegoldenrod },
{ 152 * 0x10000 + 251 * 0x100 + 152, ColorNames::palegreen },
{ 175 * 0x10000 + 238 * 0x100 + 238, ColorNames::paleturquoise },
{ 219 * 0x10000 + 112 * 0x100 + 147, ColorNames::palevioletred },
{ 255 * 0x10000 + 239 * 0x100 + 213, ColorNames::papayawhip },
{ 255 * 0x10000 + 218 * 0x100 + 185, ColorNames::peachpuff },
{ 205 * 0x10000 + 133 * 0x100 + 63, ColorNames::peru },
{ 255 * 0x10000 + 192 * 0x100 + 203, ColorNames::pink },
{ 221 * 0x10000 + 160 * 0x100 + 221, ColorNames::plum },
{ 176 * 0x10000 + 224 * 0x100 + 230, ColorNames::powderblue },
{ 128 * 0x10000 + 0 * 0x100 + 128, ColorNames::purple },
{ 255 * 0x10000 + 0 * 0x100 + 0, ColorNames::red },
{ 188 * 0x10000 + 143 * 0x100 + 143, ColorNames::rosybrown },
{ 65 * 0x10000 + 105 * 0x100 + 225, ColorNames::royalblue },
{ 139 * 0x10000 + 69 * 0x100 + 19, ColorNames::saddlebrown },
{ 250 * 0x10000 + 128 * 0x100 + 114, ColorNames::salmon },
{ 244 * 0x10000 + 164 * 0x100 + 96, ColorNames::sandybrown },
{ 46 * 0x10000 + 139 * 0x100 + 87, ColorNames::seagreen },
{ 255 * 0x10000 + 245 * 0x100 + 238, ColorNames::seashell },
{ 160 * 0x10000 + 82 * 0x100 + 45, ColorNames::sienna },
{ 192 * 0x10000 + 192 * 0x100 + 192, ColorNames::silver },
{ 135 * 0x10000 + 206 * 0x100 + 235, ColorNames::skyblue },
{ 106 * 0x10000 + 90 * 0x100 + 205, ColorNames::slateblue },
{ 112 * 0x10000 + 128 * 0x100 + 144, ColorNames::slategray },
{ 255 * 0x10000 + 250 * 0x100 + 250, ColorNames::snow },
{ 0 * 0x10000 + 255 * 0x100 + 127, ColorNames::springgreen },
{ 70 * 0x10000 + 130 * 0x100 + 180, ColorNames::steelblue },
{ 210 * 0x10000 + 180 * 0x100 + 140, ColorNames::tan },
{ 0 * 0x10000 + 128 * 0x100 + 128, ColorNames::teal },
{ 216 * 0x10000 + 191 * 0x100 + 216, ColorNames::thistle },
{ 255 * 0x10000 + 99 * 0x100 + 71, ColorNames::tomato },
{ 64 * 0x10000 + 224 * 0x100 + 208, ColorNames::turquoise },
{ 238 * 0x10000 + 130 * 0x100 + 238, ColorNames::violet },
{ 245 * 0x10000 + 222 * 0x100 + 179, ColorNames::wheat },
{ 255 * 0x10000 + 255 * 0x100 + 255, ColorNames::white },
{ 245 * 0x10000 + 245 * 0x100 + 245, ColorNames::whitesmoke },
{ 255 * 0x10000 + 255 * 0x100 + 0, ColorNames::yellow },
{ 154 * 0x10000 + 205 * 0x100 + 50, ColorNames::yellowgreen },
{ 102 * 0x10000 + 51 * 0x100 + 153, ColorNames::rebeccapurple }
};
const std::map<const char*, Color_Ptr_Const, map_cmp_str> names_to_colors
{
{ ColorNames::aliceblue, &Colors::aliceblue },
{ ColorNames::antiquewhite, &Colors::antiquewhite },
{ ColorNames::cyan, &Colors::cyan },
{ ColorNames::aqua, &Colors::aqua },
{ ColorNames::aquamarine, &Colors::aquamarine },
{ ColorNames::azure, &Colors::azure },
{ ColorNames::beige, &Colors::beige },
{ ColorNames::bisque, &Colors::bisque },
{ ColorNames::black, &Colors::black },
{ ColorNames::blanchedalmond, &Colors::blanchedalmond },
{ ColorNames::blue, &Colors::blue },
{ ColorNames::blueviolet, &Colors::blueviolet },
{ ColorNames::brown, &Colors::brown },
{ ColorNames::burlywood, &Colors::burlywood },
{ ColorNames::cadetblue, &Colors::cadetblue },
{ ColorNames::chartreuse, &Colors::chartreuse },
{ ColorNames::chocolate, &Colors::chocolate },
{ ColorNames::coral, &Colors::coral },
{ ColorNames::cornflowerblue, &Colors::cornflowerblue },
{ ColorNames::cornsilk, &Colors::cornsilk },
{ ColorNames::crimson, &Colors::crimson },
{ ColorNames::darkblue, &Colors::darkblue },
{ ColorNames::darkcyan, &Colors::darkcyan },
{ ColorNames::darkgoldenrod, &Colors::darkgoldenrod },
{ ColorNames::darkgray, &Colors::darkgray },
{ ColorNames::darkgrey, &Colors::darkgrey },
{ ColorNames::darkgreen, &Colors::darkgreen },
{ ColorNames::darkkhaki, &Colors::darkkhaki },
{ ColorNames::darkmagenta, &Colors::darkmagenta },
{ ColorNames::darkolivegreen, &Colors::darkolivegreen },
{ ColorNames::darkorange, &Colors::darkorange },
{ ColorNames::darkorchid, &Colors::darkorchid },
{ ColorNames::darkred, &Colors::darkred },
{ ColorNames::darksalmon, &Colors::darksalmon },
{ ColorNames::darkseagreen, &Colors::darkseagreen },
{ ColorNames::darkslateblue, &Colors::darkslateblue },
{ ColorNames::darkslategray, &Colors::darkslategray },
{ ColorNames::darkslategrey, &Colors::darkslategrey },
{ ColorNames::darkturquoise, &Colors::darkturquoise },
{ ColorNames::darkviolet, &Colors::darkviolet },
{ ColorNames::deeppink, &Colors::deeppink },
{ ColorNames::deepskyblue, &Colors::deepskyblue },
{ ColorNames::dimgray, &Colors::dimgray },
{ ColorNames::dimgrey, &Colors::dimgrey },
{ ColorNames::dodgerblue, &Colors::dodgerblue },
{ ColorNames::firebrick, &Colors::firebrick },
{ ColorNames::floralwhite, &Colors::floralwhite },
{ ColorNames::forestgreen, &Colors::forestgreen },
{ ColorNames::magenta, &Colors::magenta },
{ ColorNames::fuchsia, &Colors::fuchsia },
{ ColorNames::gainsboro, &Colors::gainsboro },
{ ColorNames::ghostwhite, &Colors::ghostwhite },
{ ColorNames::gold, &Colors::gold },
{ ColorNames::goldenrod, &Colors::goldenrod },
{ ColorNames::gray, &Colors::gray },
{ ColorNames::grey, &Colors::grey },
{ ColorNames::green, &Colors::green },
{ ColorNames::greenyellow, &Colors::greenyellow },
{ ColorNames::honeydew, &Colors::honeydew },
{ ColorNames::hotpink, &Colors::hotpink },
{ ColorNames::indianred, &Colors::indianred },
{ ColorNames::indigo, &Colors::indigo },
{ ColorNames::ivory, &Colors::ivory },
{ ColorNames::khaki, &Colors::khaki },
{ ColorNames::lavender, &Colors::lavender },
{ ColorNames::lavenderblush, &Colors::lavenderblush },
{ ColorNames::lawngreen, &Colors::lawngreen },
{ ColorNames::lemonchiffon, &Colors::lemonchiffon },
{ ColorNames::lightblue, &Colors::lightblue },
{ ColorNames::lightcoral, &Colors::lightcoral },
{ ColorNames::lightcyan, &Colors::lightcyan },
{ ColorNames::lightgoldenrodyellow, &Colors::lightgoldenrodyellow },
{ ColorNames::lightgray, &Colors::lightgray },
{ ColorNames::lightgrey, &Colors::lightgrey },
{ ColorNames::lightgreen, &Colors::lightgreen },
{ ColorNames::lightpink, &Colors::lightpink },
{ ColorNames::lightsalmon, &Colors::lightsalmon },
{ ColorNames::lightseagreen, &Colors::lightseagreen },
{ ColorNames::lightskyblue, &Colors::lightskyblue },
{ ColorNames::lightslategray, &Colors::lightslategray },
{ ColorNames::lightslategrey, &Colors::lightslategrey },
{ ColorNames::lightsteelblue, &Colors::lightsteelblue },
{ ColorNames::lightyellow, &Colors::lightyellow },
{ ColorNames::lime, &Colors::lime },
{ ColorNames::limegreen, &Colors::limegreen },
{ ColorNames::linen, &Colors::linen },
{ ColorNames::maroon, &Colors::maroon },
{ ColorNames::mediumaquamarine, &Colors::mediumaquamarine },
{ ColorNames::mediumblue, &Colors::mediumblue },
{ ColorNames::mediumorchid, &Colors::mediumorchid },
{ ColorNames::mediumpurple, &Colors::mediumpurple },
{ ColorNames::mediumseagreen, &Colors::mediumseagreen },
{ ColorNames::mediumslateblue, &Colors::mediumslateblue },
{ ColorNames::mediumspringgreen, &Colors::mediumspringgreen },
{ ColorNames::mediumturquoise, &Colors::mediumturquoise },
{ ColorNames::mediumvioletred, &Colors::mediumvioletred },
{ ColorNames::midnightblue, &Colors::midnightblue },
{ ColorNames::mintcream, &Colors::mintcream },
{ ColorNames::mistyrose, &Colors::mistyrose },
{ ColorNames::moccasin, &Colors::moccasin },
{ ColorNames::navajowhite, &Colors::navajowhite },
{ ColorNames::navy, &Colors::navy },
{ ColorNames::oldlace, &Colors::oldlace },
{ ColorNames::olive, &Colors::olive },
{ ColorNames::olivedrab, &Colors::olivedrab },
{ ColorNames::orange, &Colors::orange },
{ ColorNames::orangered, &Colors::orangered },
{ ColorNames::orchid, &Colors::orchid },
{ ColorNames::palegoldenrod, &Colors::palegoldenrod },
{ ColorNames::palegreen, &Colors::palegreen },
{ ColorNames::paleturquoise, &Colors::paleturquoise },
{ ColorNames::palevioletred, &Colors::palevioletred },
{ ColorNames::papayawhip, &Colors::papayawhip },
{ ColorNames::peachpuff, &Colors::peachpuff },
{ ColorNames::peru, &Colors::peru },
{ ColorNames::pink, &Colors::pink },
{ ColorNames::plum, &Colors::plum },
{ ColorNames::powderblue, &Colors::powderblue },
{ ColorNames::purple, &Colors::purple },
{ ColorNames::red, &Colors::red },
{ ColorNames::rosybrown, &Colors::rosybrown },
{ ColorNames::royalblue, &Colors::royalblue },
{ ColorNames::saddlebrown, &Colors::saddlebrown },
{ ColorNames::salmon, &Colors::salmon },
{ ColorNames::sandybrown, &Colors::sandybrown },
{ ColorNames::seagreen, &Colors::seagreen },
{ ColorNames::seashell, &Colors::seashell },
{ ColorNames::sienna, &Colors::sienna },
{ ColorNames::silver, &Colors::silver },
{ ColorNames::skyblue, &Colors::skyblue },
{ ColorNames::slateblue, &Colors::slateblue },
{ ColorNames::slategray, &Colors::slategray },
{ ColorNames::slategrey, &Colors::slategrey },
{ ColorNames::snow, &Colors::snow },
{ ColorNames::springgreen, &Colors::springgreen },
{ ColorNames::steelblue, &Colors::steelblue },
{ ColorNames::tan, &Colors::tan },
{ ColorNames::teal, &Colors::teal },
{ ColorNames::thistle, &Colors::thistle },
{ ColorNames::tomato, &Colors::tomato },
{ ColorNames::turquoise, &Colors::turquoise },
{ ColorNames::violet, &Colors::violet },
{ ColorNames::wheat, &Colors::wheat },
{ ColorNames::white, &Colors::white },
{ ColorNames::whitesmoke, &Colors::whitesmoke },
{ ColorNames::yellow, &Colors::yellow },
{ ColorNames::yellowgreen, &Colors::yellowgreen },
{ ColorNames::rebeccapurple, &Colors::rebeccapurple },
{ ColorNames::transparent, &Colors::transparent }
};
Color_Ptr_Const name_to_color(const char* key)
{
auto p = names_to_colors.find(key);
if (p != names_to_colors.end()) {
return p->second;
}
return 0;
}
Color_Ptr_Const name_to_color(const std::string& key)
{
return name_to_color(key.c_str());
}
const char* color_to_name(const int key)
{
auto p = colors_to_names.find(key);
if (p != colors_to_names.end()) {
return p->second;
}
return 0;
}
const char* color_to_name(const double key)
{
return color_to_name((int)key);
}
const char* color_to_name(const Color& c)
{
double key = c.r() * 0x10000
+ c.g() * 0x100
+ c.b();
return color_to_name(key);
}
}