/* Generated by re2c 0.16 on Wed Jun 29 18:01:24 2016 */
/* gstyle-colorlexer.c
 *
 * Copyright (C) 2016 sebastien lafargue <slafargue@gnome.org>
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * 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
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#define G_LOG_DOMAIN "gstyle-colorlexer"

#include <glib.h>

#include "gstyle-color.h"
#include "gstyle-color-item.h"
#include "gstyle-types.h"
#include "gstyle-utils.h"

#include "gstyle-colorlexer.h"

#define PARSE_ARRAY_INITIAL_SIZE  32

#define YYCTYPE     guchar
#define YYCURSOR    cursor
#define YYMARKER    s->ptr
#define YYCTXMARKER s->ptr_ctx

static void
gstyle_colorlexer_init (GstyleColorScanner *s,
                        const gchar        *data)
{
  s->start = data;
  s->cursor = data;
}

static gint
gstyle_colorlexer_scan (GstyleColorScanner *s)
{
  const gchar *cursor = s->cursor;

standard:
  s->start = cursor;


		{
			guchar yych;
			static const unsigned char yybm[] = {
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0, 128,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				128,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
			};
			yych = *YYCURSOR;
			if (yych <= '.') {
				if (yych <= '!') {
					if (yych <= '\t') {
						if (yych <= 0x00) goto yy3;
						if (yych <= 0x08) goto yy5;
						goto yy7;
					} else {
						if (yych == ' ') goto yy7;
						goto yy5;
					}
				} else {
					if (yych <= '(') {
						if (yych <= '"') goto yy7;
						if (yych <= '&') goto yy5;
						goto yy7;
					} else {
						if (yych == ',') goto yy7;
						goto yy5;
					}
				}
			} else {
				if (yych <= 0xDF) {
					if (yych <= ':') {
						if (yych <= '/') goto yy10;
						if (yych <= '9') goto yy5;
						goto yy7;
					} else {
						if (yych <= 0x7F) goto yy5;
						if (yych >= 0xC2) goto yy11;
					}
				} else {
					if (yych <= 0xF0) {
						if (yych <= 0xE0) goto yy12;
						if (yych <= 0xEF) goto yy13;
						goto yy14;
					} else {
						if (yych <= 0xF3) goto yy15;
						if (yych <= 0xF4) goto yy16;
					}
				}
			}
yy2:
yy3:
			++YYCURSOR;
			{s->cursor = cursor; return GSTYLE_COLOR_TOKEN_EOF;}
yy5:
			++YYCURSOR;
yy6:
			{ goto standard; }
yy7:
			++YYCURSOR;
			yych = *YYCURSOR;
			if (yybm[0+yych] & 128) {
				goto yy7;
			}
			{ s->start = cursor;goto color; }
yy10:
			yych = *++YYCURSOR;
			if (yych == '*') goto yy17;
			goto yy6;
yy11:
			yych = *++YYCURSOR;
			if (yych <= 0x7F) goto yy2;
			if (yych <= 0xBF) goto yy5;
			goto yy2;
yy12:
			yych = *++YYCURSOR;
			if (yych <= 0x9F) goto yy2;
			if (yych <= 0xBF) goto yy11;
			goto yy2;
yy13:
			yych = *++YYCURSOR;
			if (yych <= 0x7F) goto yy2;
			if (yych <= 0xBF) goto yy11;
			goto yy2;
yy14:
			yych = *++YYCURSOR;
			if (yych <= 0x8F) goto yy2;
			if (yych <= 0xBF) goto yy13;
			goto yy2;
yy15:
			yych = *++YYCURSOR;
			if (yych <= 0x7F) goto yy2;
			if (yych <= 0xBF) goto yy13;
			goto yy2;
yy16:
			yych = *++YYCURSOR;
			if (yych <= 0x7F) goto yy2;
			if (yych <= 0x8F) goto yy13;
			goto yy2;
yy17:
			++YYCURSOR;
			{ goto comment; }
		}


color:

		{
			guchar yych;
			unsigned int yyaccept = 0;
			static const unsigned char yybm[] = {
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0, 128,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				128,   0,   0,   0,   0, 128,   0,   0, 
				  0,   0,   0,   0, 128,   0, 128,   0, 
				128, 128, 128, 128, 128, 128, 128, 128, 
				128, 128,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
				  0,   0,   0,   0,   0,   0,   0,   0, 
			};
			yych = *YYCURSOR;
			if (yych <= 'o') {
				if (yych <= 'e') {
					if (yych <= '`') {
						if (yych <= 0x00) goto yy22;
						if (yych == '#') goto yy26;
						goto yy24;
					} else {
						if (yych <= 'b') {
							if (yych <= 'a') goto yy27;
							goto yy28;
						} else {
							if (yych <= 'c') goto yy29;
							if (yych <= 'd') goto yy30;
							goto yy24;
						}
					}
				} else {
					if (yych <= 'j') {
						if (yych <= 'g') {
							if (yych <= 'f') goto yy31;
							goto yy32;
						} else {
							if (yych <= 'h') goto yy33;
							if (yych <= 'i') goto yy34;
							goto yy24;
						}
					} else {
						if (yych <= 'l') {
							if (yych <= 'k') goto yy35;
							goto yy36;
						} else {
							if (yych <= 'm') goto yy37;
							if (yych <= 'n') goto yy38;
							goto yy39;
						}
					}
				}
			} else {
				if (yych <= 'x') {
					if (yych <= 's') {
						if (yych <= 'p') goto yy40;
						if (yych <= 'q') goto yy24;
						if (yych <= 'r') goto yy41;
						goto yy42;
					} else {
						if (yych <= 'u') {
							if (yych <= 't') goto yy43;
							goto yy24;
						} else {
							if (yych <= 'v') goto yy44;
							if (yych <= 'w') goto yy45;
							goto yy24;
						}
					}
				} else {
					if (yych <= 0xE0) {
						if (yych <= 0x7F) {
							if (yych <= 'y') goto yy46;
							goto yy24;
						} else {
							if (yych <= 0xC1) goto yy21;
							if (yych <= 0xDF) goto yy47;
							goto yy48;
						}
					} else {
						if (yych <= 0xF0) {
							if (yych <= 0xEF) goto yy49;
							goto yy50;
						} else {
							if (yych <= 0xF3) goto yy51;
							if (yych <= 0xF4) goto yy52;
						}
					}
				}
			}
yy21:
			YYCURSOR = YYMARKER;
			if (yyaccept == 0) {
				goto yy25;
			} else {
				goto yy229;
			}
yy22:
			++YYCURSOR;
			{s->cursor = cursor; return GSTYLE_COLOR_TOKEN_EOF;}
yy24:
			++YYCURSOR;
yy25:
			{ goto standard; }
yy26:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			switch (yych) {
			case '0':
			case '1':
			case '2':
			case '3':
			case '4':
			case '5':
			case '6':
			case '7':
			case '8':
			case '9':
			case 'A':
			case 'B':
			case 'C':
			case 'D':
			case 'E':
			case 'F':
			case 'e':	goto yy53;
			case 'a':	goto yy54;
			case 'b':	goto yy55;
			case 'c':	goto yy56;
			case 'd':	goto yy57;
			case 'f':	goto yy58;
			case 'g':	goto yy59;
			case 'h':	goto yy60;
			case 'i':	goto yy61;
			case 'k':	goto yy62;
			case 'l':	goto yy63;
			case 'm':	goto yy64;
			case 'n':	goto yy65;
			case 'o':	goto yy66;
			case 'p':	goto yy67;
			case 'r':	goto yy68;
			case 's':	goto yy69;
			case 't':	goto yy70;
			case 'v':	goto yy71;
			case 'w':	goto yy72;
			case 'y':	goto yy73;
			default:	goto yy25;
			}
yy27:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			switch (yych) {
			case 'l':	goto yy74;
			case 'n':	goto yy75;
			case 'q':	goto yy76;
			case 'z':	goto yy77;
			default:	goto yy25;
			}
yy28:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			switch (yych) {
			case 'e':	goto yy78;
			case 'i':	goto yy79;
			case 'l':	goto yy80;
			case 'r':	goto yy81;
			case 'u':	goto yy82;
			default:	goto yy25;
			}
yy29:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			switch (yych) {
			case 'a':	goto yy83;
			case 'h':	goto yy84;
			case 'o':	goto yy85;
			case 'r':	goto yy86;
			case 'y':	goto yy87;
			default:	goto yy25;
			}
yy30:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			switch (yych) {
			case 'a':	goto yy88;
			case 'e':	goto yy89;
			case 'i':	goto yy90;
			case 'o':	goto yy91;
			default:	goto yy25;
			}
yy31:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			switch (yych) {
			case 'i':	goto yy92;
			case 'l':	goto yy93;
			case 'o':	goto yy94;
			case 'u':	goto yy95;
			default:	goto yy25;
			}
yy32:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			switch (yych) {
			case 'a':	goto yy96;
			case 'h':	goto yy97;
			case 'o':	goto yy98;
			case 'r':	goto yy99;
			default:	goto yy25;
			}
yy33:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			if (yych == 'o') goto yy100;
			if (yych == 's') goto yy101;
			goto yy25;
yy34:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			if (yych == 'n') goto yy102;
			if (yych == 'v') goto yy103;
			goto yy25;
yy35:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			if (yych == 'h') goto yy104;
			goto yy25;
yy36:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			if (yych <= 'd') {
				if (yych == 'a') goto yy105;
				goto yy25;
			} else {
				if (yych <= 'e') goto yy106;
				if (yych == 'i') goto yy107;
				goto yy25;
			}
yy37:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			switch (yych) {
			case 'a':	goto yy108;
			case 'e':	goto yy109;
			case 'i':	goto yy110;
			case 'o':	goto yy111;
			default:	goto yy25;
			}
yy38:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			if (yych == 'a') goto yy112;
			goto yy25;
yy39:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			if (yych == 'l') goto yy113;
			if (yych == 'r') goto yy114;
			goto yy25;
yy40:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			switch (yych) {
			case 'a':	goto yy115;
			case 'e':	goto yy116;
			case 'i':	goto yy117;
			case 'l':	goto yy118;
			case 'o':	goto yy119;
			case 'u':	goto yy120;
			default:	goto yy25;
			}
yy41:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			if (yych <= 'f') {
				if (yych == 'e') goto yy121;
				goto yy25;
			} else {
				if (yych <= 'g') goto yy122;
				if (yych == 'o') goto yy123;
				goto yy25;
			}
yy42:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			switch (yych) {
			case 'a':	goto yy124;
			case 'e':	goto yy125;
			case 'i':	goto yy126;
			case 'k':	goto yy127;
			case 'l':	goto yy128;
			case 'n':	goto yy129;
			case 'p':	goto yy130;
			case 't':	goto yy131;
			default:	goto yy25;
			}
yy43:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			switch (yych) {
			case 'a':	goto yy132;
			case 'e':	goto yy133;
			case 'h':	goto yy134;
			case 'o':	goto yy135;
			case 'u':	goto yy136;
			default:	goto yy25;
			}
yy44:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			if (yych == 'i') goto yy137;
			goto yy25;
yy45:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			if (yych == 'h') goto yy138;
			goto yy25;
yy46:
			yyaccept = 0;
			yych = *(YYMARKER = ++YYCURSOR);
			if (yych == 'e') goto yy139;
			goto yy25;
yy47:
			yych = *++YYCURSOR;
			if (yych <= 0x7F) goto yy21;
			if (yych <= 0xBF) goto yy24;
			goto yy21;
yy48:
			yych = *++YYCURSOR;
			if (yych <= 0x9F) goto yy21;
			if (yych <= 0xBF) goto yy47;
			goto yy21;
yy49:
			yych = *++YYCURSOR;
			if (yych <= 0x7F) goto yy21;
			if (yych <= 0xBF) goto yy47;
			goto yy21;
yy50:
			yych = *++YYCURSOR;
			if (yych <= 0x8F) goto yy21;
			if (yych <= 0xBF) goto yy49;
			goto yy21;
yy51:
			yych = *++YYCURSOR;
			if (yych <= 0x7F) goto yy21;
			if (yych <= 0xBF) goto yy49;
			goto yy21;
yy52:
			yych = *++YYCURSOR;
			if (yych <= 0x7F) goto yy21;
			if (yych <= 0x8F) goto yy49;
			goto yy21;
yy53:
			yych = *++YYCURSOR;
			if (yych <= '@') {
				if (yych <= '/') goto yy21;
				if (yych <= '9') goto yy140;
				goto yy21;
			} else {
				if (yych <= 'F') goto yy140;
				if (yych <= '`') goto yy21;
				if (yych <= 'f') goto yy140;
				goto yy21;
			}
yy54:
			yych = *++YYCURSOR;
			if (yych <= 'k') {
				if (yych <= '@') {
					if (yych <= '/') goto yy21;
					if (yych <= '9') goto yy140;
					goto yy21;
				} else {
					if (yych <= 'F') goto yy140;
					if (yych <= '`') goto yy21;
					if (yych <= 'f') goto yy140;
					goto yy21;
				}
			} else {
				if (yych <= 'p') {
					if (yych <= 'l') goto yy74;
					if (yych == 'n') goto yy75;
					goto yy21;
				} else {
					if (yych <= 'q') goto yy76;
					if (yych == 'z') goto yy77;
					goto yy21;
				}
			}
yy55:
			yych = *++YYCURSOR;
			if (yych <= 'f') {
				if (yych <= 'F') {
					if (yych <= '/') goto yy21;
					if (yych <= '9') goto yy140;
					if (yych <= '@') goto yy21;
					goto yy140;
				} else {
					if (yych <= '`') goto yy21;
					if (yych == 'e') goto yy141;
					goto yy140;
				}
			} else {
				if (yych <= 'l') {
					if (yych == 'i') goto yy79;
					if (yych <= 'k') goto yy21;
					goto yy80;
				} else {
					if (yych <= 'r') {
						if (yych <= 'q') goto yy21;
						goto yy81;
					} else {
						if (yych == 'u') goto yy82;
						goto yy21;
					}
				}
			}
yy56:
			yych = *++YYCURSOR;
			if (yych <= 'g') {
				if (yych <= 'F') {
					if (yych <= '/') goto yy21;
					if (yych <= '9') goto yy140;
					if (yych <= '@') goto yy21;
					goto yy140;
				} else {
					if (yych <= '`') goto yy21;
					if (yych <= 'a') goto yy142;
					if (yych <= 'f') goto yy140;
					goto yy21;
				}
			} else {
				if (yych <= 'q') {
					if (yych <= 'h') goto yy84;
					if (yych == 'o') goto yy85;
					goto yy21;
				} else {
					if (yych <= 'r') goto yy86;
					if (yych == 'y') goto yy87;
					goto yy21;
				}
			}
yy57:
			yych = *++YYCURSOR;
			if (yych <= 'd') {
				if (yych <= '@') {
					if (yych <= '/') goto yy21;
					if (yych <= '9') goto yy140;
					goto yy21;
				} else {
					if (yych <= 'F') goto yy140;
					if (yych <= '`') goto yy21;
					if (yych <= 'a') goto yy143;
					goto yy140;
				}
			} else {
				if (yych <= 'h') {
					if (yych <= 'e') goto yy144;
					if (yych <= 'f') goto yy140;
					goto yy21;
				} else {
					if (yych <= 'i') goto yy90;
					if (yych == 'o') goto yy91;
					goto yy21;
				}
			}
yy58:
			yych = *++YYCURSOR;
			if (yych <= 'h') {
				if (yych <= '@') {
					if (yych <= '/') goto yy21;
					if (yych <= '9') goto yy140;
					goto yy21;
				} else {
					if (yych <= 'F') goto yy140;
					if (yych <= '`') goto yy21;
					if (yych <= 'f') goto yy140;
					goto yy21;
				}
			} else {
				if (yych <= 'n') {
					if (yych <= 'i') goto yy92;
					if (yych == 'l') goto yy93;
					goto yy21;
				} else {
					if (yych <= 'o') goto yy94;
					if (yych == 'u') goto yy95;
					goto yy21;
				}
			}
yy59:
			yych = *++YYCURSOR;
			switch (yych) {
			case 'a':	goto yy96;
			case 'h':	goto yy97;
			case 'o':	goto yy98;
			case 'r':	goto yy99;
			default:	goto yy21;
			}
yy60:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy100;
			if (yych == 's') goto yy101;
			goto yy21;
yy61:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy102;
			if (yych == 'v') goto yy103;
			goto yy21;
yy62:
			yych = *++YYCURSOR;
			if (yych == 'h') goto yy104;
			goto yy21;
yy63:
			yych = *++YYCURSOR;
			if (yych <= 'd') {
				if (yych == 'a') goto yy105;
				goto yy21;
			} else {
				if (yych <= 'e') goto yy106;
				if (yych == 'i') goto yy107;
				goto yy21;
			}
yy64:
			yych = *++YYCURSOR;
			switch (yych) {
			case 'a':	goto yy108;
			case 'e':	goto yy109;
			case 'i':	goto yy110;
			case 'o':	goto yy111;
			default:	goto yy21;
			}
yy65:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy112;
			goto yy21;
yy66:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy113;
			if (yych == 'r') goto yy114;
			goto yy21;
yy67:
			yych = *++YYCURSOR;
			switch (yych) {
			case 'a':	goto yy115;
			case 'e':	goto yy116;
			case 'i':	goto yy117;
			case 'l':	goto yy118;
			case 'o':	goto yy119;
			case 'u':	goto yy120;
			default:	goto yy21;
			}
yy68:
			yych = *++YYCURSOR;
			if (yych <= 'f') {
				if (yych == 'e') goto yy121;
				goto yy21;
			} else {
				if (yych <= 'g') goto yy122;
				if (yych == 'o') goto yy123;
				goto yy21;
			}
yy69:
			yych = *++YYCURSOR;
			switch (yych) {
			case 'a':	goto yy124;
			case 'e':	goto yy125;
			case 'i':	goto yy126;
			case 'k':	goto yy127;
			case 'l':	goto yy128;
			case 'n':	goto yy129;
			case 'p':	goto yy130;
			case 't':	goto yy131;
			default:	goto yy21;
			}
yy70:
			yych = *++YYCURSOR;
			switch (yych) {
			case 'a':	goto yy132;
			case 'e':	goto yy133;
			case 'h':	goto yy134;
			case 'o':	goto yy135;
			case 'u':	goto yy136;
			default:	goto yy21;
			}
yy71:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy137;
			goto yy21;
yy72:
			yych = *++YYCURSOR;
			if (yych == 'h') goto yy138;
			goto yy21;
yy73:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy139;
			goto yy21;
yy74:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy145;
			goto yy21;
yy75:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy146;
			goto yy21;
yy76:
			yych = *++YYCURSOR;
			if (yych == 'u') goto yy147;
			goto yy21;
yy77:
			yych = *++YYCURSOR;
			if (yych == 'u') goto yy148;
			goto yy21;
yy78:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy149;
			goto yy21;
yy79:
			yych = *++YYCURSOR;
			if (yych == 's') goto yy150;
			goto yy21;
yy80:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy151;
			if (yych == 'u') goto yy152;
			goto yy21;
yy81:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy153;
			goto yy21;
yy82:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy154;
			goto yy21;
yy83:
			yych = *++YYCURSOR;
			if (yych == 'd') goto yy155;
			goto yy21;
yy84:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy156;
			if (yych == 'o') goto yy157;
			goto yy21;
yy85:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy158;
			goto yy21;
yy86:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy159;
			goto yy21;
yy87:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy132;
			goto yy21;
yy88:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy160;
			goto yy21;
yy89:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy161;
			goto yy21;
yy90:
			yych = *++YYCURSOR;
			if (yych == 'm') goto yy162;
			goto yy21;
yy91:
			yych = *++YYCURSOR;
			if (yych == 'd') goto yy163;
			goto yy21;
yy92:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy164;
			goto yy21;
yy93:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy165;
			goto yy21;
yy94:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy166;
			goto yy21;
yy95:
			yych = *++YYCURSOR;
			if (yych == 'c') goto yy167;
			goto yy21;
yy96:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy168;
			goto yy21;
yy97:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy169;
			goto yy21;
yy98:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy170;
			goto yy21;
yy99:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy171;
			if (yych == 'e') goto yy172;
			goto yy21;
yy100:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy173;
			if (yych == 't') goto yy174;
			goto yy21;
yy101:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy175;
			goto yy21;
yy102:
			yych = *++YYCURSOR;
			if (yych == 'd') goto yy176;
			goto yy21;
yy103:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy177;
			goto yy21;
yy104:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy178;
			goto yy21;
yy105:
			yych = *++YYCURSOR;
			if (yych <= 'u') goto yy21;
			if (yych <= 'v') goto yy179;
			if (yych <= 'w') goto yy180;
			goto yy21;
yy106:
			yych = *++YYCURSOR;
			if (yych == 'm') goto yy181;
			goto yy21;
yy107:
			yych = *++YYCURSOR;
			if (yych <= 'l') {
				if (yych == 'g') goto yy182;
				goto yy21;
			} else {
				if (yych <= 'm') goto yy183;
				if (yych <= 'n') goto yy184;
				goto yy21;
			}
yy108:
			yych = *++YYCURSOR;
			if (yych == 'g') goto yy185;
			if (yych == 'r') goto yy186;
			goto yy21;
yy109:
			yych = *++YYCURSOR;
			if (yych == 'd') goto yy187;
			goto yy21;
yy110:
			yych = *++YYCURSOR;
			if (yych <= 'm') {
				if (yych == 'd') goto yy188;
				goto yy21;
			} else {
				if (yych <= 'n') goto yy189;
				if (yych == 's') goto yy190;
				goto yy21;
			}
yy111:
			yych = *++YYCURSOR;
			if (yych == 'c') goto yy191;
			goto yy21;
yy112:
			yych = *++YYCURSOR;
			if (yych == 'v') goto yy192;
			goto yy21;
yy113:
			yych = *++YYCURSOR;
			if (yych == 'd') goto yy193;
			if (yych == 'i') goto yy194;
			goto yy21;
yy114:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy195;
			if (yych == 'c') goto yy196;
			goto yy21;
yy115:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy197;
			if (yych == 'p') goto yy198;
			goto yy21;
yy116:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy199;
			if (yych == 'r') goto yy200;
			goto yy21;
yy117:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy201;
			goto yy21;
yy118:
			yych = *++YYCURSOR;
			if (yych == 'u') goto yy202;
			goto yy21;
yy119:
			yych = *++YYCURSOR;
			if (yych == 'w') goto yy203;
			goto yy21;
yy120:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy204;
			goto yy21;
yy121:
			yych = *++YYCURSOR;
			if (yych == 'd') goto yy205;
			goto yy21;
yy122:
			yych = *++YYCURSOR;
			if (yych == 'b') goto yy206;
			goto yy21;
yy123:
			yych = *++YYCURSOR;
			if (yych == 's') goto yy207;
			if (yych == 'y') goto yy208;
			goto yy21;
yy124:
			yych = *++YYCURSOR;
			if (yych <= 'k') {
				if (yych == 'd') goto yy209;
				goto yy21;
			} else {
				if (yych <= 'l') goto yy210;
				if (yych == 'n') goto yy211;
				goto yy21;
			}
yy125:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy212;
			goto yy21;
yy126:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy213;
			if (yych == 'l') goto yy214;
			goto yy21;
yy127:
			yych = *++YYCURSOR;
			if (yych == 'y') goto yy215;
			goto yy21;
yy128:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy216;
			goto yy21;
yy129:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy217;
			goto yy21;
yy130:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy218;
			goto yy21;
yy131:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy219;
			goto yy21;
yy132:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy205;
			goto yy21;
yy133:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy220;
			goto yy21;
yy134:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy221;
			goto yy21;
yy135:
			yych = *++YYCURSOR;
			if (yych == 'm') goto yy222;
			goto yy21;
yy136:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy223;
			goto yy21;
yy137:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy224;
			goto yy21;
yy138:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy225;
			if (yych == 'i') goto yy226;
			goto yy21;
yy139:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy227;
			goto yy21;
yy140:
			yych = *++YYCURSOR;
			if (yych <= '@') {
				if (yych <= '/') goto yy21;
				if (yych <= '9') goto yy228;
				goto yy21;
			} else {
				if (yych <= 'F') goto yy228;
				if (yych <= '`') goto yy21;
				if (yych <= 'f') goto yy228;
				goto yy21;
			}
yy141:
			yych = *++YYCURSOR;
			if (yych <= 'F') {
				if (yych <= '/') goto yy21;
				if (yych <= '9') goto yy228;
				if (yych <= '@') goto yy21;
				goto yy228;
			} else {
				if (yych <= 'f') {
					if (yych <= '`') goto yy21;
					goto yy228;
				} else {
					if (yych == 'i') goto yy149;
					goto yy21;
				}
			}
yy142:
			yych = *++YYCURSOR;
			if (yych <= 'F') {
				if (yych <= '/') goto yy21;
				if (yych <= '9') goto yy228;
				if (yych <= '@') goto yy21;
				goto yy228;
			} else {
				if (yych <= 'c') {
					if (yych <= '`') goto yy21;
					goto yy228;
				} else {
					if (yych <= 'd') goto yy230;
					if (yych <= 'f') goto yy228;
					goto yy21;
				}
			}
yy143:
			yych = *++YYCURSOR;
			if (yych <= 'F') {
				if (yych <= '/') goto yy21;
				if (yych <= '9') goto yy228;
				if (yych <= '@') goto yy21;
				goto yy228;
			} else {
				if (yych <= 'f') {
					if (yych <= '`') goto yy21;
					goto yy228;
				} else {
					if (yych == 'r') goto yy160;
					goto yy21;
				}
			}
yy144:
			yych = *++YYCURSOR;
			if (yych <= 'F') {
				if (yych <= '/') goto yy21;
				if (yych <= '9') goto yy228;
				if (yych <= '@') goto yy21;
				goto yy228;
			} else {
				if (yych <= 'd') {
					if (yych <= '`') goto yy21;
					goto yy228;
				} else {
					if (yych <= 'e') goto yy231;
					if (yych <= 'f') goto yy228;
					goto yy21;
				}
			}
yy145:
			yych = *++YYCURSOR;
			if (yych == 'c') goto yy232;
			goto yy21;
yy146:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy233;
			goto yy21;
yy147:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy234;
			goto yy21;
yy148:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy235;
			goto yy21;
yy149:
			yych = *++YYCURSOR;
			if (yych == 'g') goto yy235;
			goto yy21;
yy150:
			yych = *++YYCURSOR;
			if (yych == 'q') goto yy236;
			goto yy21;
yy151:
			yych = *++YYCURSOR;
			if (yych == 'c') goto yy201;
			if (yych == 'n') goto yy237;
			goto yy21;
yy152:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy238;
			goto yy21;
yy153:
			yych = *++YYCURSOR;
			if (yych == 'w') goto yy132;
			goto yy21;
yy154:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy239;
			goto yy21;
yy155:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy240;
			goto yy21;
yy156:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy241;
			goto yy21;
yy157:
			yych = *++YYCURSOR;
			if (yych == 'c') goto yy242;
			goto yy21;
yy158:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy220;
			if (yych == 'n') goto yy243;
			goto yy21;
yy159:
			yych = *++YYCURSOR;
			if (yych == 'm') goto yy244;
			goto yy21;
yy160:
			yych = *++YYCURSOR;
			if (yych == 'k') goto yy245;
			goto yy21;
yy161:
			yych = *++YYCURSOR;
			if (yych == 'p') goto yy246;
			goto yy21;
yy162:
			yych = *++YYCURSOR;
			if (yych == 'g') goto yy247;
			goto yy21;
yy163:
			yych = *++YYCURSOR;
			if (yych == 'g') goto yy248;
			goto yy21;
yy164:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy249;
			goto yy21;
yy165:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy250;
			goto yy21;
yy166:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy251;
			goto yy21;
yy167:
			yych = *++YYCURSOR;
			if (yych == 'h') goto yy252;
			goto yy21;
yy168:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy253;
			goto yy21;
yy169:
			yych = *++YYCURSOR;
			if (yych == 's') goto yy254;
			goto yy21;
yy170:
			yych = *++YYCURSOR;
			if (yych == 'd') goto yy255;
			goto yy21;
yy171:
			yych = *++YYCURSOR;
			if (yych == 'y') goto yy205;
			goto yy21;
yy172:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy256;
			if (yych == 'y') goto yy205;
			goto yy21;
yy173:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy257;
			goto yy21;
yy174:
			yych = *++YYCURSOR;
			if (yych == 'p') goto yy258;
			goto yy21;
yy175:
			yych = *++YYCURSOR;
			if (yych == '(') goto yy259;
			if (yych == 'a') goto yy260;
			goto yy21;
yy176:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy261;
			goto yy21;
yy177:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy171;
			goto yy21;
yy178:
			yych = *++YYCURSOR;
			if (yych == 'k') goto yy262;
			goto yy21;
yy179:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy263;
			goto yy21;
yy180:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy264;
			goto yy21;
yy181:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy265;
			goto yy21;
yy182:
			yych = *++YYCURSOR;
			if (yych == 'h') goto yy266;
			goto yy21;
yy183:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy267;
			goto yy21;
yy184:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy132;
			goto yy21;
yy185:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy268;
			goto yy21;
yy186:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy269;
			goto yy21;
yy187:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy270;
			goto yy21;
yy188:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy271;
			goto yy21;
yy189:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy272;
			goto yy21;
yy190:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy273;
			goto yy21;
yy191:
			yych = *++YYCURSOR;
			if (yych == 'c') goto yy274;
			goto yy21;
yy192:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy275;
			if (yych == 'y') goto yy205;
			goto yy21;
yy193:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy276;
			goto yy21;
yy194:
			yych = *++YYCURSOR;
			if (yych == 'v') goto yy277;
			goto yy21;
yy195:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy278;
			goto yy21;
yy196:
			yych = *++YYCURSOR;
			if (yych == 'h') goto yy279;
			goto yy21;
yy197:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy280;
			goto yy21;
yy198:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy281;
			goto yy21;
yy199:
			yych = *++YYCURSOR;
			if (yych == 'c') goto yy282;
			goto yy21;
yy200:
			yych = *++YYCURSOR;
			if (yych == 'u') goto yy205;
			goto yy21;
yy201:
			yych = *++YYCURSOR;
			if (yych == 'k') goto yy205;
			goto yy21;
yy202:
			yych = *++YYCURSOR;
			if (yych == 'm') goto yy205;
			goto yy21;
yy203:
			yych = *++YYCURSOR;
			if (yych == 'd') goto yy248;
			goto yy21;
yy204:
			yych = *++YYCURSOR;
			if (yych == 'p') goto yy283;
			goto yy21;
yy205:
			yych = *++YYCURSOR;
			YYCTXMARKER = YYCURSOR;
			if (yych <= '&') {
				if (yych <= 0x1F) {
					if (yych == '\t') goto yy284;
					goto yy21;
				} else {
					if (yych == '!') goto yy21;
					if (yych <= '"') goto yy284;
					goto yy21;
				}
			} else {
				if (yych <= '+') {
					if (yych == '(') goto yy21;
					if (yych <= ')') goto yy284;
					goto yy21;
				} else {
					if (yych <= ',') goto yy284;
					if (yych == ';') goto yy284;
					goto yy21;
				}
			}
yy206:
			yych = *++YYCURSOR;
			if (yych == '(') goto yy286;
			if (yych == 'a') goto yy287;
			goto yy21;
yy207:
			yych = *++YYCURSOR;
			if (yych == 'y') goto yy288;
			goto yy21;
yy208:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy289;
			goto yy21;
yy209:
			yych = *++YYCURSOR;
			if (yych == 'd') goto yy290;
			goto yy21;
yy210:
			yych = *++YYCURSOR;
			if (yych == 'm') goto yy269;
			goto yy21;
yy211:
			yych = *++YYCURSOR;
			if (yych == 'd') goto yy207;
			goto yy21;
yy212:
			yych = *++YYCURSOR;
			if (yych == 'g') goto yy291;
			if (yych == 's') goto yy292;
			goto yy21;
yy213:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy293;
			goto yy21;
yy214:
			yych = *++YYCURSOR;
			if (yych == 'v') goto yy294;
			goto yy21;
yy215:
			yych = *++YYCURSOR;
			if (yych == 'b') goto yy295;
			goto yy21;
yy216:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy296;
			goto yy21;
yy217:
			yych = *++YYCURSOR;
			if (yych == 'w') goto yy205;
			goto yy21;
yy218:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy297;
			goto yy21;
yy219:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy289;
			goto yy21;
yy220:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy205;
			goto yy21;
yy221:
			yych = *++YYCURSOR;
			if (yych == 's') goto yy298;
			goto yy21;
yy222:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy299;
			goto yy21;
yy223:
			yych = *++YYCURSOR;
			if (yych == 'q') goto yy300;
			goto yy21;
yy224:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy301;
			goto yy21;
yy225:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy302;
			goto yy21;
yy226:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy303;
			goto yy21;
yy227:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy304;
			goto yy21;
yy228:
			yyaccept = 1;
			yych = *(YYMARKER = ++YYCURSOR);
			if (yych <= '@') {
				if (yych <= '/') goto yy229;
				if (yych <= '9') goto yy305;
			} else {
				if (yych <= 'F') goto yy305;
				if (yych <= '`') goto yy229;
				if (yych <= 'f') goto yy305;
			}
yy229:
			{s->cursor = cursor; return GSTYLE_COLOR_TOKEN_HEX;}
yy230:
			yyaccept = 1;
			yych = *(YYMARKER = ++YYCURSOR);
			if (yych <= 'F') {
				if (yych <= '/') goto yy229;
				if (yych <= '9') goto yy305;
				if (yych <= '@') goto yy229;
				goto yy305;
			} else {
				if (yych <= 'd') {
					if (yych <= '`') goto yy229;
					goto yy305;
				} else {
					if (yych <= 'e') goto yy306;
					if (yych <= 'f') goto yy305;
					goto yy229;
				}
			}
yy231:
			yyaccept = 1;
			yych = *(YYMARKER = ++YYCURSOR);
			if (yych <= 'F') {
				if (yych <= '/') goto yy229;
				if (yych <= '9') goto yy305;
				if (yych <= '@') goto yy229;
				goto yy305;
			} else {
				if (yych <= 'f') {
					if (yych <= '`') goto yy229;
					goto yy305;
				} else {
					if (yych == 'p') goto yy246;
					goto yy229;
				}
			}
yy232:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy215;
			goto yy21;
yy233:
			yych = *++YYCURSOR;
			if (yych == 'q') goto yy307;
			goto yy21;
yy234:
			yych = *++YYCURSOR;
			YYCTXMARKER = YYCURSOR;
			if (yych <= '\'') {
				if (yych <= ' ') {
					if (yych == '\t') goto yy284;
					if (yych <= 0x1F) goto yy21;
					goto yy284;
				} else {
					if (yych == '"') goto yy284;
					if (yych <= '&') goto yy21;
					goto yy284;
				}
			} else {
				if (yych <= ',') {
					if (yych == ')') goto yy284;
					if (yych <= '+') goto yy21;
					goto yy284;
				} else {
					if (yych <= ';') {
						if (yych <= ':') goto yy21;
						goto yy284;
					} else {
						if (yych == 'm') goto yy308;
						goto yy21;
					}
				}
			}
yy235:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy205;
			goto yy21;
yy236:
			yych = *++YYCURSOR;
			if (yych == 'u') goto yy235;
			goto yy21;
yy237:
			yych = *++YYCURSOR;
			if (yych == 'c') goto yy309;
			goto yy21;
yy238:
			yych = *++YYCURSOR;
			YYCTXMARKER = YYCURSOR;
			if (yych <= '\'') {
				if (yych <= ' ') {
					if (yych == '\t') goto yy284;
					if (yych <= 0x1F) goto yy21;
					goto yy284;
				} else {
					if (yych == '"') goto yy284;
					if (yych <= '&') goto yy21;
					goto yy284;
				}
			} else {
				if (yych <= ',') {
					if (yych == ')') goto yy284;
					if (yych <= '+') goto yy21;
					goto yy284;
				} else {
					if (yych <= ';') {
						if (yych <= ':') goto yy21;
						goto yy284;
					} else {
						if (yych == 'v') goto yy71;
						goto yy21;
					}
				}
			}
yy239:
			yych = *++YYCURSOR;
			if (yych == 'y') goto yy310;
			goto yy21;
yy240:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy215;
			goto yy21;
yy241:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy311;
			goto yy21;
yy242:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy312;
			goto yy21;
yy243:
			yych = *++YYCURSOR;
			if (yych == 'f') goto yy313;
			if (yych == 's') goto yy314;
			goto yy21;
yy244:
			yych = *++YYCURSOR;
			if (yych == 's') goto yy269;
			goto yy21;
yy245:
			yych = *++YYCURSOR;
			switch (yych) {
			case 'b':	goto yy295;
			case 'c':	goto yy315;
			case 'g':	goto yy316;
			case 'k':	goto yy62;
			case 'm':	goto yy317;
			case 'o':	goto yy318;
			case 'r':	goto yy319;
			case 's':	goto yy320;
			case 't':	goto yy321;
			case 'v':	goto yy71;
			default:	goto yy21;
			}
yy246:
			yych = *++YYCURSOR;
			if (yych == 'p') goto yy258;
			if (yych == 's') goto yy322;
			goto yy21;
yy247:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy323;
			goto yy21;
yy248:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy324;
			goto yy21;
yy249:
			yych = *++YYCURSOR;
			if (yych == 'b') goto yy325;
			goto yy21;
yy250:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy326;
			goto yy21;
yy251:
			yych = *++YYCURSOR;
			if (yych == 's') goto yy327;
			goto yy21;
yy252:
			yych = *++YYCURSOR;
			if (yych == 's') goto yy328;
			goto yy21;
yy253:
			yych = *++YYCURSOR;
			if (yych == 's') goto yy329;
			goto yy21;
yy254:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy330;
			goto yy21;
yy255:
			yych = *++YYCURSOR;
			YYCTXMARKER = YYCURSOR;
			if (yych <= '\'') {
				if (yych <= ' ') {
					if (yych == '\t') goto yy284;
					if (yych <= 0x1F) goto yy21;
					goto yy284;
				} else {
					if (yych == '"') goto yy284;
					if (yych <= '&') goto yy21;
					goto yy284;
				}
			} else {
				if (yych <= ',') {
					if (yych == ')') goto yy284;
					if (yych <= '+') goto yy21;
					goto yy284;
				} else {
					if (yych <= ';') {
						if (yych <= ':') goto yy21;
						goto yy284;
					} else {
						if (yych == 'e') goto yy331;
						goto yy21;
					}
				}
			}
yy256:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy332;
			goto yy21;
yy257:
			yych = *++YYCURSOR;
			if (yych == 'y') goto yy333;
			goto yy21;
yy258:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy117;
			goto yy21;
yy259:
			yych = *++YYCURSOR;
			if (yych == ')') goto yy21;
			goto yy335;
yy260:
			yych = *++YYCURSOR;
			if (yych == '(') goto yy259;
			goto yy21;
yy261:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy336;
			if (yych == 'g') goto yy337;
			goto yy21;
yy262:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy205;
			goto yy21;
yy263:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy338;
			goto yy21;
yy264:
			yych = *++YYCURSOR;
			if (yych == 'g') goto yy291;
			goto yy21;
yy265:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy339;
			goto yy21;
yy266:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy340;
			goto yy21;
yy267:
			yych = *++YYCURSOR;
			YYCTXMARKER = YYCURSOR;
			if (yych <= '\'') {
				if (yych <= ' ') {
					if (yych == '\t') goto yy284;
					if (yych <= 0x1F) goto yy21;
					goto yy284;
				} else {
					if (yych == '"') goto yy284;
					if (yych <= '&') goto yy21;
					goto yy284;
				}
			} else {
				if (yych <= ',') {
					if (yych == ')') goto yy284;
					if (yych <= '+') goto yy21;
					goto yy284;
				} else {
					if (yych <= ';') {
						if (yych <= ':') goto yy21;
						goto yy284;
					} else {
						if (yych == 'g') goto yy291;
						goto yy21;
					}
				}
			}
yy268:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy341;
			goto yy21;
yy269:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy132;
			goto yy21;
yy270:
			yych = *++YYCURSOR;
			if (yych == 'u') goto yy342;
			goto yy21;
yy271:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy343;
			goto yy21;
yy272:
			yych = *++YYCURSOR;
			if (yych == 'c') goto yy344;
			goto yy21;
yy273:
			yych = *++YYCURSOR;
			if (yych == 'y') goto yy345;
			goto yy21;
yy274:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy346;
			goto yy21;
yy275:
			yych = *++YYCURSOR;
			if (yych == 'j') goto yy347;
			goto yy21;
yy276:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy348;
			goto yy21;
yy277:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy349;
			goto yy21;
yy278:
			yych = *++YYCURSOR;
			if (yych == 'g') goto yy350;
			goto yy21;
yy279:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy121;
			goto yy21;
yy280:
			yych = *++YYCURSOR;
			if (yych <= 's') {
				if (yych == 'g') goto yy351;
				goto yy21;
			} else {
				if (yych <= 't') goto yy321;
				if (yych == 'v') goto yy352;
				goto yy21;
			}
yy281:
			yych = *++YYCURSOR;
			if (yych == 'y') goto yy353;
			goto yy21;
yy282:
			yych = *++YYCURSOR;
			if (yych == 'h') goto yy354;
			goto yy21;
yy283:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy235;
			goto yy21;
yy284:
			++YYCURSOR;
			YYCURSOR = YYCTXMARKER;
			{s->cursor = cursor; return GSTYLE_COLOR_TOKEN_NAMED;}
yy286:
			yych = *++YYCURSOR;
			if (yych == ')') goto yy21;
			goto yy356;
yy287:
			yych = *++YYCURSOR;
			if (yych == '(') goto yy286;
			goto yy21;
yy288:
			yych = *++YYCURSOR;
			if (yych == 'b') goto yy357;
			goto yy21;
yy289:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy215;
			goto yy21;
yy290:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy358;
			goto yy21;
yy291:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy359;
			goto yy21;
yy292:
			yych = *++YYCURSOR;
			if (yych == 'h') goto yy360;
			goto yy21;
yy293:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy361;
			goto yy21;
yy294:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy362;
			goto yy21;
yy295:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy236;
			goto yy21;
yy296:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy363;
			goto yy21;
yy297:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy364;
			goto yy21;
yy298:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy283;
			goto yy21;
yy299:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy337;
			goto yy21;
yy300:
			yych = *++YYCURSOR;
			if (yych == 'u') goto yy365;
			goto yy21;
yy301:
			yych = *++YYCURSOR;
			if (yych != 'e') goto yy21;
yy302:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy205;
			goto yy21;
yy303:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy366;
			goto yy21;
yy304:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy367;
			goto yy21;
yy305:
			yych = *++YYCURSOR;
			if (yych <= '@') {
				if (yych <= '/') goto yy21;
				if (yych <= '9') goto yy368;
				goto yy21;
			} else {
				if (yych <= 'F') goto yy368;
				if (yych <= '`') goto yy21;
				if (yych <= 'f') goto yy368;
				goto yy21;
			}
yy306:
			yych = *++YYCURSOR;
			if (yych <= 'F') {
				if (yych <= '/') goto yy21;
				if (yych <= '9') goto yy368;
				if (yych <= '@') goto yy21;
				goto yy368;
			} else {
				if (yych <= 'f') {
					if (yych <= '`') goto yy21;
					goto yy368;
				} else {
					if (yych == 't') goto yy215;
					goto yy21;
				}
			}
yy307:
			yych = *++YYCURSOR;
			if (yych == 'u') goto yy369;
			goto yy21;
yy308:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy370;
			goto yy21;
yy309:
			yych = *++YYCURSOR;
			if (yych == 'h') goto yy371;
			goto yy21;
yy310:
			yych = *++YYCURSOR;
			if (yych == 'w') goto yy372;
			goto yy21;
yy311:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy373;
			goto yy21;
yy312:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy374;
			goto yy21;
yy313:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy375;
			goto yy21;
yy314:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy376;
			goto yy21;
yy315:
			yych = *++YYCURSOR;
			if (yych == 'y') goto yy87;
			goto yy21;
yy316:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy377;
			if (yych == 'r') goto yy378;
			goto yy21;
yy317:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy379;
			goto yy21;
yy318:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy380;
			if (yych == 'r') goto yy381;
			goto yy21;
yy319:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy121;
			goto yy21;
yy320:
			yych = *++YYCURSOR;
			if (yych <= 'd') {
				if (yych == 'a') goto yy382;
				goto yy21;
			} else {
				if (yych <= 'e') goto yy383;
				if (yych == 'l') goto yy128;
				goto yy21;
			}
yy321:
			yych = *++YYCURSOR;
			if (yych == 'u') goto yy136;
			goto yy21;
yy322:
			yych = *++YYCURSOR;
			if (yych == 'k') goto yy127;
			goto yy21;
yy323:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy171;
			if (yych == 'e') goto yy171;
			goto yy21;
yy324:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy215;
			goto yy21;
yy325:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy384;
			goto yy21;
yy326:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy330;
			goto yy21;
yy327:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy264;
			goto yy21;
yy328:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy361;
			goto yy21;
yy329:
			yych = *++YYCURSOR;
			if (yych == 'b') goto yy385;
			goto yy21;
yy330:
			yych = *++YYCURSOR;
			if (yych == 'w') goto yy386;
			goto yy21;
yy331:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy387;
			goto yy21;
yy332:
			yych = *++YYCURSOR;
			YYCTXMARKER = YYCURSOR;
			if (yych <= '\'') {
				if (yych <= ' ') {
					if (yych == '\t') goto yy284;
					if (yych <= 0x1F) goto yy21;
					goto yy284;
				} else {
					if (yych == '"') goto yy284;
					if (yych <= '&') goto yy21;
					goto yy284;
				}
			} else {
				if (yych <= ',') {
					if (yych == ')') goto yy284;
					if (yych <= '+') goto yy21;
					goto yy284;
				} else {
					if (yych <= ';') {
						if (yych <= ':') goto yy21;
						goto yy284;
					} else {
						if (yych == 'y') goto yy388;
						goto yy21;
					}
				}
			}
yy333:
			yych = *++YYCURSOR;
			if (yych == 'd') goto yy389;
			goto yy21;
yy334:
			++YYCURSOR;
			yych = *YYCURSOR;
yy335:
			if (yybm[0+yych] & 128) {
				goto yy334;
			}
			if (yych == ')') goto yy390;
			goto yy21;
yy336:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy392;
			goto yy21;
yy337:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy205;
			goto yy21;
yy338:
			yych = *++YYCURSOR;
			if (yych == 'd') goto yy393;
			goto yy21;
yy339:
			yych = *++YYCURSOR;
			if (yych == 'c') goto yy394;
			goto yy21;
yy340:
			yych = *++YYCURSOR;
			switch (yych) {
			case 'b':	goto yy295;
			case 'c':	goto yy395;
			case 'g':	goto yy396;
			case 'p':	goto yy258;
			case 's':	goto yy397;
			case 'y':	goto yy388;
			default:	goto yy21;
			}
yy341:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy361;
			goto yy21;
yy342:
			yych = *++YYCURSOR;
			if (yych == 'm') goto yy398;
			goto yy21;
yy343:
			yych = *++YYCURSOR;
			if (yych == 'g') goto yy399;
			goto yy21;
yy344:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy400;
			goto yy21;
yy345:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy401;
			goto yy21;
yy346:
			yych = *++YYCURSOR;
			if (yych == 's') goto yy402;
			goto yy21;
yy347:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy330;
			goto yy21;
yy348:
			yych = *++YYCURSOR;
			if (yych == 'c') goto yy235;
			goto yy21;
yy349:
			yych = *++YYCURSOR;
			YYCTXMARKER = YYCURSOR;
			if (yych <= '\'') {
				if (yych <= ' ') {
					if (yych == '\t') goto yy284;
					if (yych <= 0x1F) goto yy21;
					goto yy284;
				} else {
					if (yych == '"') goto yy284;
					if (yych <= '&') goto yy21;
					goto yy284;
				}
			} else {
				if (yych <= ',') {
					if (yych == ')') goto yy284;
					if (yych <= '+') goto yy21;
					goto yy284;
				} else {
					if (yych <= ';') {
						if (yych <= ':') goto yy21;
						goto yy284;
					} else {
						if (yych == 'd') goto yy403;
						goto yy21;
					}
				}
			}
yy350:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy404;
			goto yy21;
yy351:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy377;
			if (yych == 'r') goto yy359;
			goto yy21;
yy352:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy405;
			goto yy21;
yy353:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy406;
			goto yy21;
yy354:
			yych = *++YYCURSOR;
			if (yych == 'p') goto yy407;
			goto yy21;
yy355:
			++YYCURSOR;
			yych = *YYCURSOR;
yy356:
			if (yych <= '(') {
				if (yych <= 0x1F) {
					if (yych == '\t') goto yy355;
					goto yy21;
				} else {
					if (yych <= ' ') goto yy355;
					if (yych == '%') goto yy355;
					goto yy21;
				}
			} else {
				if (yych <= '-') {
					if (yych <= ')') goto yy408;
					if (yych == ',') goto yy355;
					goto yy21;
				} else {
					if (yych == '/') goto yy21;
					if (yych <= '9') goto yy355;
					goto yy21;
				}
			}
yy357:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy81;
			goto yy21;
yy358:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy288;
			goto yy21;
yy359:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy184;
			goto yy21;
yy360:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy410;
			goto yy21;
yy361:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy205;
			goto yy21;
yy362:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy205;
			goto yy21;
yy363:
			yych = *++YYCURSOR;
			if (yych == 'b') goto yy295;
			if (yych == 'g') goto yy247;
			goto yy21;
yy364:
			yych = *++YYCURSOR;
			if (yych == 'g') goto yy264;
			goto yy21;
yy365:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy411;
			goto yy21;
yy366:
			yych = *++YYCURSOR;
			YYCTXMARKER = YYCURSOR;
			if (yych <= '\'') {
				if (yych <= ' ') {
					if (yych == '\t') goto yy284;
					if (yych <= 0x1F) goto yy21;
					goto yy284;
				} else {
					if (yych == '"') goto yy284;
					if (yych <= '&') goto yy21;
					goto yy284;
				}
			} else {
				if (yych <= ',') {
					if (yych == ')') goto yy284;
					if (yych <= '+') goto yy21;
					goto yy284;
				} else {
					if (yych <= ';') {
						if (yych <= ':') goto yy21;
						goto yy284;
					} else {
						if (yych == 's') goto yy412;
						goto yy21;
					}
				}
			}
yy367:
			yych = *++YYCURSOR;
			if (yych == 'w') goto yy267;
			goto yy21;
yy368:
			yych = *++YYCURSOR;
			if (yych <= '@') {
				if (yych <= '/') goto yy21;
				if (yych <= '9') goto yy413;
				goto yy21;
			} else {
				if (yych <= 'F') goto yy413;
				if (yych <= '`') goto yy21;
				if (yych <= 'f') goto yy413;
				goto yy21;
			}
yy369:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy330;
			goto yy21;
yy370:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy415;
			goto yy21;
yy371:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy416;
			goto yy21;
yy372:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy417;
			goto yy21;
yy373:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy418;
			goto yy21;
yy374:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy419;
			goto yy21;
yy375:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy420;
			goto yy21;
yy376:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy201;
			goto yy21;
yy377:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy421;
			goto yy21;
yy378:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy171;
			if (yych == 'e') goto yy422;
			goto yy21;
yy379:
			yych = *++YYCURSOR;
			if (yych == 'g') goto yy185;
			goto yy21;
yy380:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy423;
			goto yy21;
yy381:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy424;
			if (yych == 'c') goto yy196;
			goto yy21;
yy382:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy210;
			goto yy21;
yy383:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy264;
			goto yy21;
yy384:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy425;
			goto yy21;
yy385:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy426;
			goto yy21;
yy386:
			yych = *++YYCURSOR;
			if (yych == 'h') goto yy427;
			goto yy21;
yy387:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy417;
			goto yy21;
yy388:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy428;
			goto yy21;
yy389:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy217;
			goto yy21;
yy390:
			++YYCURSOR;
			{s->cursor = cursor; return GSTYLE_COLOR_TOKEN_HSL;}
yy392:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy319;
			goto yy21;
yy393:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy429;
			goto yy21;
yy394:
			yych = *++YYCURSOR;
			if (yych == 'h') goto yy430;
			goto yy21;
yy395:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy431;
			if (yych == 'y') goto yy87;
			goto yy21;
yy396:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy432;
			if (yych == 'r') goto yy378;
			goto yy21;
yy397:
			yych = *++YYCURSOR;
			switch (yych) {
			case 'a':	goto yy382;
			case 'e':	goto yy383;
			case 'k':	goto yy127;
			case 'l':	goto yy433;
			case 't':	goto yy131;
			default:	goto yy21;
			}
yy398:
			yych = *++YYCURSOR;
			switch (yych) {
			case 'a':	goto yy434;
			case 'b':	goto yy295;
			case 'o':	goto yy435;
			case 'p':	goto yy436;
			case 's':	goto yy437;
			case 't':	goto yy321;
			case 'v':	goto yy352;
			default:	goto yy21;
			}
yy399:
			yych = *++YYCURSOR;
			if (yych == 'h') goto yy240;
			goto yy21;
yy400:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy438;
			goto yy21;
yy401:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy439;
			goto yy21;
yy402:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy132;
			goto yy21;
yy403:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy440;
			goto yy21;
yy404:
			yych = *++YYCURSOR;
			YYCTXMARKER = YYCURSOR;
			if (yych <= '\'') {
				if (yych <= ' ') {
					if (yych == '\t') goto yy284;
					if (yych <= 0x1F) goto yy21;
					goto yy284;
				} else {
					if (yych == '"') goto yy284;
					if (yych <= '&') goto yy21;
					goto yy284;
				}
			} else {
				if (yych <= ',') {
					if (yych == ')') goto yy284;
					if (yych <= '+') goto yy21;
					goto yy284;
				} else {
					if (yych <= ';') {
						if (yych <= ':') goto yy21;
						goto yy284;
					} else {
						if (yych == 'r') goto yy319;
						goto yy21;
					}
				}
			}
yy405:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy441;
			goto yy21;
yy406:
			yych = *++YYCURSOR;
			if (yych == 'w') goto yy442;
			goto yy21;
yy407:
			yych = *++YYCURSOR;
			if (yych == 'u') goto yy443;
			goto yy21;
yy408:
			++YYCURSOR;
			{s->cursor = cursor; return GSTYLE_COLOR_TOKEN_RGB;}
yy410:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy220;
			goto yy21;
yy411:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy439;
			goto yy21;
yy412:
			yych = *++YYCURSOR;
			if (yych == 'm') goto yy444;
			goto yy21;
yy413:
			++YYCURSOR;
			{s->cursor = cursor; return GSTYLE_COLOR_TOKEN_HEX;}
yy415:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy445;
			goto yy21;
yy416:
			yych = *++YYCURSOR;
			if (yych == 'd') goto yy446;
			goto yy21;
yy417:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy121;
			goto yy21;
yy418:
			yych = *++YYCURSOR;
			if (yych == 'u') goto yy439;
			goto yy21;
yy419:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy235;
			goto yy21;
yy420:
			yych = *++YYCURSOR;
			if (yych == 'w') goto yy248;
			goto yy21;
yy421:
			yych = *++YYCURSOR;
			if (yych == 'd') goto yy447;
			goto yy21;
yy422:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy132;
			if (yych == 'y') goto yy205;
			goto yy21;
yy423:
			yych = *++YYCURSOR;
			if (yych == 'v') goto yy448;
			goto yy21;
yy424:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy149;
			goto yy21;
yy425:
			yych = *++YYCURSOR;
			if (yych == 'c') goto yy201;
			goto yy21;
yy426:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy337;
			goto yy21;
yy427:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy419;
			goto yy21;
yy428:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy449;
			goto yy21;
yy429:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy450;
			goto yy21;
yy430:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy451;
			goto yy21;
yy431:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy133;
			goto yy21;
yy432:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy452;
			goto yy21;
yy433:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy453;
			goto yy21;
yy434:
			yych = *++YYCURSOR;
			if (yych == 'q') goto yy454;
			goto yy21;
yy435:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy455;
			goto yy21;
yy436:
			yych = *++YYCURSOR;
			if (yych == 'u') goto yy120;
			goto yy21;
yy437:
			yych = *++YYCURSOR;
			if (yych <= 'k') {
				if (yych == 'e') goto yy383;
				goto yy21;
			} else {
				if (yych <= 'l') goto yy456;
				if (yych == 'p') goto yy130;
				goto yy21;
			}
yy438:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy202;
			goto yy21;
yy439:
			yych = *++YYCURSOR;
			if (yych == 's') goto yy235;
			goto yy21;
yy440:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy457;
			goto yy21;
yy441:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy458;
			goto yy21;
yy442:
			yych = *++YYCURSOR;
			if (yych == 'h') goto yy459;
			goto yy21;
yy443:
			yych = *++YYCURSOR;
			if (yych == 'f') goto yy460;
			goto yy21;
yy444:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy461;
			goto yy21;
yy445:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy235;
			goto yy21;
yy446:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy462;
			goto yy21;
yy447:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy331;
			goto yy21;
yy448:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy264;
			goto yy21;
yy449:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy129;
			goto yy21;
yy450:
			yych = *++YYCURSOR;
			YYCTXMARKER = YYCURSOR;
			if (yych <= '\'') {
				if (yych <= ' ') {
					if (yych == '\t') goto yy284;
					if (yych <= 0x1F) goto yy21;
					goto yy284;
				} else {
					if (yych == '"') goto yy284;
					if (yych <= '&') goto yy21;
					goto yy284;
				}
			} else {
				if (yych <= ',') {
					if (yych == ')') goto yy284;
					if (yych <= '+') goto yy21;
					goto yy284;
				} else {
					if (yych <= ';') {
						if (yych <= ':') goto yy21;
						goto yy284;
					} else {
						if (yych == 'b') goto yy463;
						goto yy21;
					}
				}
			}
yy451:
			yych = *++YYCURSOR;
			if (yych == 'f') goto yy464;
			goto yy21;
yy452:
			yych = *++YYCURSOR;
			if (yych == 'd') goto yy465;
			goto yy21;
yy453:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy466;
			goto yy21;
yy454:
			yych = *++YYCURSOR;
			if (yych == 'u') goto yy467;
			goto yy21;
yy455:
			yych = *++YYCURSOR;
			if (yych == 'c') goto yy196;
			goto yy21;
yy456:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy468;
			goto yy21;
yy457:
			yych = *++YYCURSOR;
			if (yych == 'b') goto yy205;
			goto yy21;
yy458:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy469;
			goto yy21;
yy459:
			yych = *++YYCURSOR;
			if (yych == 'i') goto yy470;
			goto yy21;
yy460:
			yych = *++YYCURSOR;
			if (yych == 'f') goto yy205;
			goto yy21;
yy461:
			yych = *++YYCURSOR;
			if (yych == 'k') goto yy235;
			goto yy21;
yy462:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy471;
			goto yy21;
yy463:
			yych = *++YYCURSOR;
			if (yych == 'l') goto yy472;
			goto yy21;
yy464:
			yych = *++YYCURSOR;
			if (yych == 'f') goto yy269;
			goto yy21;
yy465:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy473;
			goto yy21;
yy466:
			yych = *++YYCURSOR;
			if (yych == 'e') goto yy162;
			goto yy21;
yy467:
			yych = *++YYCURSOR;
			if (yych == 'a') goto yy474;
			goto yy21;
yy468:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy232;
			goto yy21;
yy469:
			yych = *++YYCURSOR;
			if (yych == 't') goto yy392;
			goto yy21;
yy470:
			yych = *++YYCURSOR;
			if (yych == 'p') goto yy205;
			goto yy21;
yy471:
			yych = *++YYCURSOR;
			if (yych == 'm') goto yy475;
			goto yy21;
yy472:
			yych = *++YYCURSOR;
			if (yych == 'u') goto yy476;
			goto yy21;
yy473:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy477;
			goto yy21;
yy474:
			yych = *++YYCURSOR;
			if (yych == 'm') goto yy308;
			goto yy21;
yy475:
			yych = *++YYCURSOR;
			if (yych == 'o') goto yy478;
			goto yy21;
yy476:
			yych = *++YYCURSOR;
			if (yych == 's') goto yy479;
			goto yy21;
yy477:
			yych = *++YYCURSOR;
			if (yych == 'r') goto yy480;
			goto yy21;
yy478:
			yych = *++YYCURSOR;
			if (yych == 'n') goto yy121;
			goto yy21;
yy479:
			yych = *++YYCURSOR;
			if (yych == 'h') goto yy205;
			goto yy21;
yy480:
			yych = *++YYCURSOR;
			if (yych != 'o') goto yy21;
			yych = *++YYCURSOR;
			if (yych != 'd') goto yy21;
			++YYCURSOR;
			if ((yych = *YYCURSOR) == 'y') goto yy388;
			goto yy21;
		}


comment:

		{
			guchar yych;
			yych = *YYCURSOR;
			if (yych <= 0xDF) {
				if (yych <= '*') {
					if (yych <= 0x00) goto yy486;
					if (yych <= ')') goto yy488;
					goto yy490;
				} else {
					if (yych <= 0x7F) goto yy488;
					if (yych >= 0xC2) goto yy491;
				}
			} else {
				if (yych <= 0xF0) {
					if (yych <= 0xE0) goto yy492;
					if (yych <= 0xEF) goto yy493;
					goto yy494;
				} else {
					if (yych <= 0xF3) goto yy495;
					if (yych <= 0xF4) goto yy496;
				}
			}
yy485:
yy486:
			++YYCURSOR;
			{s->cursor = cursor; return GSTYLE_COLOR_TOKEN_EOF;}
yy488:
			++YYCURSOR;
yy489:
			{ goto comment; }
yy490:
			yych = *++YYCURSOR;
			if (yych == '/') goto yy497;
			goto yy489;
yy491:
			yych = *++YYCURSOR;
			if (yych <= 0x7F) goto yy485;
			if (yych <= 0xBF) goto yy488;
			goto yy485;
yy492:
			yych = *++YYCURSOR;
			if (yych <= 0x9F) goto yy485;
			if (yych <= 0xBF) goto yy491;
			goto yy485;
yy493:
			yych = *++YYCURSOR;
			if (yych <= 0x7F) goto yy485;
			if (yych <= 0xBF) goto yy491;
			goto yy485;
yy494:
			yych = *++YYCURSOR;
			if (yych <= 0x8F) goto yy485;
			if (yych <= 0xBF) goto yy493;
			goto yy485;
yy495:
			yych = *++YYCURSOR;
			if (yych <= 0x7F) goto yy485;
			if (yych <= 0xBF) goto yy493;
			goto yy485;
yy496:
			yych = *++YYCURSOR;
			if (yych <= 0x7F) goto yy485;
			if (yych <= 0x8F) goto yy493;
			goto yy485;
yy497:
			++YYCURSOR;
			{ goto standard; }
		}

}

/* TODO: check for " ' \t space around named */
/**
 * gstyle_colorlexer_parse:
 * @data: a constant string.
 *
 *  Parse a string and return an array of #GstyleColorItem.
 *
 * Returns: (element-type GstyleColorItem) (transfer full): a #GPtrArray of #GstyleColorItem.
 *
 */
GPtrArray *
gstyle_colorlexer_parse (const gchar *data)
{
  GPtrArray *ar;
  GstyleColorItem *item;
  GstyleColorScanner s;
  gint token;

  if (gstyle_str_empty0 (data))
    return NULL;

  ar = g_ptr_array_new_full (PARSE_ARRAY_INITIAL_SIZE, (GDestroyNotify)gstyle_color_item_unref);
  gstyle_colorlexer_init (&s, data);

  while((token = gstyle_colorlexer_scan (&s)) != GSTYLE_COLOR_TOKEN_EOF)
    {
      if (token != GSTYLE_COLOR_TOKEN_HEX && *s.start == '#')
        ++s.start;

      item = gstyle_color_item_new (NULL, s.start - data, s.cursor - s.start);
      g_ptr_array_add (ar, item);
    }

  return ar;
}
