/* Generated by re2c 0.9.12 on Thu Aug 14 18:07:50 2008 */
#line 1 "scanner.l"
/*
 * This file is part of NetSurf, http://netsurf-browser.org/
 * Licensed under the GNU General Public License,
 *                http://www.opensource.org/licenses/gpl-license
 * Copyright 2004 James Bursa <bursa@users.sourceforge.net>
 */

/** \file
 * CSS tokeniser using re2c.
 *
 * see CSS2 Specification, chapter 4
 * http://www.w3.org/TR/REC-CSS2/syndata.html,
 * and errata
 * http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata
 */

#include <stdbool.h>
#define CSS_INTERNALS
#include "css/css.h"
#include "css/parser.h"

#define YYCTYPE unsigned char
#define YYCURSOR (*buffer)
#define YYLIMIT end
#define YYMARKER marker
#define YYFILL(n) { return 0; }


/**
 * Identify a CSS source token.
 *
 * \param  buffer      source to tokenise, updated to new position
 * \param  end         end of source
 * \param  token_text  updated to start of recognized token
 * \return  token number
 */

int css_tokenise(unsigned char **buffer, unsigned char *end,
		unsigned char **token_text)
{
	unsigned char *marker;

start:
	*token_text = YYCURSOR;


#line 50 "<stdout>"
{
	YYCTYPE yych;
	unsigned int yyaccept = 0;
	goto yy0;
	++YYCURSOR;
yy0:
	if((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
	yych = *YYCURSOR;
	switch(yych){
	case 0x00:
	case 0x01:
	case 0x02:
	case 0x03:
	case 0x04:
	case 0x05:
	case 0x06:
	case 0x07:
	case 0x08:	case 0x0B:	case 0x0E:
	case 0x0F:
	case 0x10:
	case 0x11:
	case 0x12:
	case 0x13:
	case 0x14:
	case 0x15:
	case 0x16:
	case 0x17:
	case 0x18:
	case 0x19:
	case 0x1A:
	case 0x1B:
	case 0x1C:
	case 0x1D:
	case 0x1E:
	case 0x1F:	case '!':	case '%':
	case '&':	case '?':	case '`':	case 0x7F:	goto yy51;
	case 0x09:
	case 0x0A:	case 0x0C:
	case 0x0D:	case ' ':	goto yy34;
	case '"':	goto yy10;
	case '#':	goto yy12;
	case '$':	goto yy40;
	case '\'':	goto yy11;
	case '(':	goto yy26;
	case ')':	goto yy28;
	case '*':	goto yy41;
	case '+':	goto yy13;
	case ',':	goto yy47;
	case '-':	goto yy2;
	case '.':	goto yy17;
	case '/':	goto yy36;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy15;
	case ':':	goto yy45;
	case ';':	goto yy20;
	case '<':	goto yy19;
	case '=':	goto yy43;
	case '>':	goto yy49;
	case '@':	goto yy9;
	case 'U':	goto yy6;
	case '[':	goto yy30;
	case '\\':	goto yy8;
	case ']':	goto yy32;
	case '^':	goto yy39;
	case 'u':	goto yy7;
	case '{':	goto yy22;
	case '|':	goto yy38;
	case '}':	goto yy24;
	case '~':	goto yy37;
	default:	goto yy4;
	}
yy2:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych <= 'Z'){
		if(yych <= '.'){
			if(yych <= ',')	goto yy3;
			if(yych <= '-')	goto yy197;
			goto yy95;
		} else {
			if(yych <= '/')	goto yy3;
			if(yych <= '9')	goto yy96;
			if(yych >= 'A')	goto yy137;
			goto yy3;
		}
	} else {
		if(yych <= '_'){
			if(yych == '\\')	goto yy196;
			if(yych >= '_')	goto yy137;
			goto yy3;
		} else {
			if(yych <= '`')	goto yy3;
			if(yych <= 'z')	goto yy137;
			if(yych >= 0x80)	goto yy137;
			goto yy3;
		}
	}
yy3:
#line 109 "scanner.l"
{ return DELIM; }
#line 158 "<stdout>"
yy4:	yyaccept = 1;
	yych = *(YYMARKER = ++YYCURSOR);
	goto yy138;
yy5:
#line 63 "scanner.l"
{ return IDENT; }
#line 165 "<stdout>"
yy6:	yyaccept = 1;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych == '+')	goto yy189;
	goto yy138;
yy7:	yyaccept = 1;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych == 'r')	goto yy148;
	goto yy138;
yy8:	yych = *++YYCURSOR;
	if(yych <= 0x0D){
		if(yych == 0x0A)	goto yy3;
		if(yych <= 0x0B)	goto yy137;
		goto yy3;
	} else {
		if(yych <= '9'){
			if(yych <= '/')	goto yy137;
			goto yy139;
		} else {
			if(yych <= '`')	goto yy137;
			if(yych <= 'f')	goto yy139;
			goto yy137;
		}
	}
yy9:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych <= '\\'){
		if(yych <= '@'){
			if(yych == '-')	goto yy125;
			goto yy3;
		} else {
			if(yych <= 'Z')	goto yy126;
			if(yych <= '[')	goto yy3;
			goto yy129;
		}
	} else {
		if(yych <= '`'){
			if(yych == '_')	goto yy126;
			goto yy3;
		} else {
			if(yych <= 'z')	goto yy126;
			if(yych <= 0x7F)	goto yy3;
			goto yy126;
		}
	}
yy10:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych <= 0x1F){
		if(yych == 0x09)	goto yy117;
		goto yy3;
	} else {
		if(yych == 0x7F)	goto yy3;
		goto yy117;
	}
yy11:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych <= 0x1F){
		if(yych == 0x09)	goto yy106;
		goto yy3;
	} else {
		if(yych == 0x7F)	goto yy3;
		goto yy106;
	}
yy12:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych <= '['){
		if(yych <= '/'){
			if(yych == '-')	goto yy98;
			goto yy3;
		} else {
			if(yych <= '9')	goto yy98;
			if(yych <= '@')	goto yy3;
			if(yych <= 'Z')	goto yy98;
			goto yy3;
		}
	} else {
		if(yych <= '_'){
			if(yych <= '\\')	goto yy101;
			if(yych <= '^')	goto yy3;
			goto yy98;
		} else {
			if(yych <= '`')	goto yy3;
			if(yych <= 'z')	goto yy98;
			if(yych <= 0x7F)	goto yy3;
			goto yy98;
		}
	}
yy13:	yyaccept = 2;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych == '.')	goto yy95;
	if(yych <= '/')	goto yy14;
	if(yych <= '9')	goto yy96;
	goto yy14;
yy14:
#line 104 "scanner.l"
{ return PLUS; }
#line 261 "<stdout>"
yy15:	yyaccept = 3;
	yych = *(YYMARKER = ++YYCURSOR);
	goto yy97;
yy16:
#line 68 "scanner.l"
{ return NUMBER; }
#line 268 "<stdout>"
yy17:	++YYCURSOR;
	if((yych = *YYCURSOR) <= '/')	goto yy18;
	if(yych <= '9')	goto yy79;
	goto yy18;
yy18:
#line 106 "scanner.l"
{ return DOT; }
#line 276 "<stdout>"
yy19:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych == '!')	goto yy74;
	goto yy3;
yy20:	++YYCURSOR;
	goto yy21;
yy21:
#line 80 "scanner.l"
{ return SEMI; }
#line 286 "<stdout>"
yy22:	++YYCURSOR;
	goto yy23;
yy23:
#line 81 "scanner.l"
{ return LBRACE; }
#line 292 "<stdout>"
yy24:	++YYCURSOR;
	goto yy25;
yy25:
#line 82 "scanner.l"
{ return RBRACE; }
#line 298 "<stdout>"
yy26:	++YYCURSOR;
	goto yy27;
yy27:
#line 83 "scanner.l"
{ return LPAREN; }
#line 304 "<stdout>"
yy28:	++YYCURSOR;
	goto yy29;
yy29:
#line 84 "scanner.l"
{ return RPAREN; }
#line 310 "<stdout>"
yy30:	++YYCURSOR;
	goto yy31;
yy31:
#line 85 "scanner.l"
{ return LBRAC; }
#line 316 "<stdout>"
yy32:	++YYCURSOR;
	goto yy33;
yy33:
#line 86 "scanner.l"
{ return RBRAC; }
#line 322 "<stdout>"
yy34:	++YYCURSOR;
	yych = *YYCURSOR;
	goto yy73;
yy35:
#line 88 "scanner.l"
{ return S; }
#line 329 "<stdout>"
yy36:	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych == '*')	goto yy62;
	goto yy3;
yy37:	yych = *++YYCURSOR;
	if(yych == '=')	goto yy60;
	goto yy3;
yy38:	yych = *++YYCURSOR;
	if(yych == '=')	goto yy58;
	goto yy3;
yy39:	yych = *++YYCURSOR;
	if(yych == '=')	goto yy56;
	goto yy3;
yy40:	yych = *++YYCURSOR;
	if(yych == '=')	goto yy54;
	goto yy3;
yy41:	++YYCURSOR;
	if((yych = *YYCURSOR) == '=')	goto yy52;
	goto yy42;
yy42:
#line 107 "scanner.l"
{ return ASTERISK; }
#line 352 "<stdout>"
yy43:	++YYCURSOR;
	goto yy44;
yy44:
#line 101 "scanner.l"
{ return EQUALS; }
#line 358 "<stdout>"
yy45:	++YYCURSOR;
	goto yy46;
yy46:
#line 102 "scanner.l"
{ return COLON; }
#line 364 "<stdout>"
yy47:	++YYCURSOR;
	goto yy48;
yy48:
#line 103 "scanner.l"
{ return COMMA; }
#line 370 "<stdout>"
yy49:	++YYCURSOR;
	goto yy50;
yy50:
#line 105 "scanner.l"
{ return GT; }
#line 376 "<stdout>"
yy51:	yych = *++YYCURSOR;
	goto yy3;
yy52:	++YYCURSOR;
	goto yy53;
yy53:
#line 99 "scanner.l"
{ return SUBSTR; }
#line 384 "<stdout>"
yy54:	++YYCURSOR;
	goto yy55;
yy55:
#line 98 "scanner.l"
{ return SUFFIX; }
#line 390 "<stdout>"
yy56:	++YYCURSOR;
	goto yy57;
yy57:
#line 97 "scanner.l"
{ return PREFIX; }
#line 396 "<stdout>"
yy58:	++YYCURSOR;
	goto yy59;
yy59:
#line 96 "scanner.l"
{ return DASHMATCH; }
#line 402 "<stdout>"
yy60:	++YYCURSOR;
	goto yy61;
yy61:
#line 95 "scanner.l"
{ return INCLUDES; }
#line 408 "<stdout>"
yy62:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy63;
yy63:	if(yych != '*')	goto yy62;
	goto yy64;
yy64:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy65;
yy65:	if(yych == '*')	goto yy64;
	if(yych == '/')	goto yy68;
	goto yy66;
yy66:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy67;
yy67:	if(yych == '*')	goto yy70;
	goto yy66;
yy68:	++YYCURSOR;
	goto yy69;
yy69:
#line 91 "scanner.l"
{ goto start; /* ignore comments */ }
#line 433 "<stdout>"
yy70:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy71;
yy71:	if(yych == '*')	goto yy70;
	if(yych == '/')	goto yy68;
	goto yy66;
yy72:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy73;
yy73:	if(yych <= 0x0B){
		if(yych <= 0x08)	goto yy35;
		if(yych <= 0x0A)	goto yy72;
		goto yy35;
	} else {
		if(yych <= 0x0D)	goto yy72;
		if(yych == ' ')	goto yy72;
		goto yy35;
	}
yy74:	yych = *++YYCURSOR;
	if(yych == '-')	goto yy76;
	goto yy75;
yy75:	YYCURSOR = YYMARKER;
	switch(yyaccept){
	case 1:	goto yy5;
	case 7:	goto yy128;
	case 6:	goto yy110;
	case 5:	goto yy100;
	case 3:	goto yy16;
	case 4:	goto yy86;
	case 9:	goto yy162;
	case 10:	goto yy192;
	case 8:	goto yy144;
	case 2:	goto yy14;
	case 0:	goto yy3;
	}
yy76:	yych = *++YYCURSOR;
	if(yych != '-')	goto yy75;
	goto yy77;
yy77:	++YYCURSOR;
	goto yy78;
yy78:
#line 77 "scanner.l"
{ goto start; /* ignore CDO */ }
#line 479 "<stdout>"
yy79:	yyaccept = 3;
	YYMARKER = ++YYCURSOR;
	if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
	yych = *YYCURSOR;
	goto yy80;
yy80:	if(yych <= 'Z'){
		if(yych <= '-'){
			if(yych == '%')	goto yy81;
			if(yych <= ',')	goto yy16;
			goto yy83;
		} else {
			if(yych <= '/')	goto yy16;
			if(yych <= '9')	goto yy79;
			if(yych <= '@')	goto yy16;
			goto yy84;
		}
	} else {
		if(yych <= '_'){
			if(yych == '\\')	goto yy87;
			if(yych <= '^')	goto yy16;
			goto yy84;
		} else {
			if(yych <= '`')	goto yy16;
			if(yych <= 'z')	goto yy84;
			if(yych <= 0x7F)	goto yy16;
			goto yy84;
		}
	}
yy81:	++YYCURSOR;
	goto yy82;
yy82:
#line 69 "scanner.l"
{ return PERCENTAGE; }
#line 513 "<stdout>"
yy83:	yych = *++YYCURSOR;
	if(yych <= '^'){
		if(yych <= 'Z'){
			if(yych <= '@')	goto yy75;
			goto yy84;
		} else {
			if(yych == '\\')	goto yy87;
			goto yy75;
		}
	} else {
		if(yych <= '`'){
			if(yych >= '`')	goto yy75;
			goto yy84;
		} else {
			if(yych <= 'z')	goto yy84;
			if(yych <= 0x7F)	goto yy75;
			goto yy84;
		}
	}
yy84:	yyaccept = 4;
	YYMARKER = ++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy85;
yy85:	if(yych <= '['){
		if(yych <= '/'){
			if(yych == '-')	goto yy84;
			goto yy86;
		} else {
			if(yych <= '9')	goto yy84;
			if(yych <= '@')	goto yy86;
			if(yych <= 'Z')	goto yy84;
			goto yy86;
		}
	} else {
		if(yych <= '_'){
			if(yych <= '\\')	goto yy91;
			if(yych >= '_')	goto yy84;
			goto yy86;
		} else {
			if(yych <= '`')	goto yy86;
			if(yych <= 'z')	goto yy84;
			if(yych >= 0x80)	goto yy84;
			goto yy86;
		}
	}
yy86:
#line 70 "scanner.l"
{ return DIMENSION; }
#line 563 "<stdout>"
yy87:	yych = *++YYCURSOR;
	if(yych <= 0x0D){
		if(yych == 0x0A)	goto yy75;
		if(yych <= 0x0B)	goto yy84;
		goto yy75;
	} else {
		if(yych <= '9'){
			if(yych <= '/')	goto yy84;
			goto yy88;
		} else {
			if(yych <= '`')	goto yy84;
			if(yych >= 'g')	goto yy84;
			goto yy88;
		}
	}
yy88:	yyaccept = 4;
	YYMARKER = ++YYCURSOR;
	if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
	yych = *YYCURSOR;
	goto yy89;
yy89:	if(yych <= '9'){
		if(yych <= 0x0D){
			if(yych <= 0x0A){
				if(yych <= 0x08)	goto yy86;
				goto yy84;
			} else {
				if(yych <= 0x0B)	goto yy86;
				if(yych <= 0x0C)	goto yy84;
				goto yy90;
			}
		} else {
			if(yych <= ','){
				if(yych == ' ')	goto yy84;
				goto yy86;
			} else {
				if(yych <= '-')	goto yy84;
				if(yych <= '/')	goto yy86;
				goto yy88;
			}
		}
	} else {
		if(yych <= '^'){
			if(yych <= 'Z'){
				if(yych <= '@')	goto yy86;
				goto yy84;
			} else {
				if(yych == '\\')	goto yy91;
				goto yy86;
			}
		} else {
			if(yych <= 'f'){
				if(yych <= '_')	goto yy84;
				if(yych <= '`')	goto yy86;
				goto yy88;
			} else {
				if(yych <= 'z')	goto yy84;
				if(yych <= 0x7F)	goto yy86;
				goto yy84;
			}
		}
	}
yy90:	yyaccept = 4;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych == 0x0A)	goto yy84;
	goto yy85;
yy91:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= 0x0D){
		if(yych == 0x0A)	goto yy75;
		if(yych <= 0x0B)	goto yy84;
		goto yy75;
	} else {
		if(yych <= '9'){
			if(yych <= '/')	goto yy84;
			goto yy92;
		} else {
			if(yych <= '`')	goto yy84;
			if(yych >= 'g')	goto yy84;
			goto yy92;
		}
	}
yy92:	yyaccept = 4;
	YYMARKER = ++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy93;
yy93:	if(yych <= '9'){
		if(yych <= 0x0D){
			if(yych <= 0x0A){
				if(yych <= 0x08)	goto yy86;
				goto yy84;
			} else {
				if(yych <= 0x0B)	goto yy86;
				if(yych <= 0x0C)	goto yy84;
				goto yy94;
			}
		} else {
			if(yych <= ','){
				if(yych == ' ')	goto yy84;
				goto yy86;
			} else {
				if(yych <= '-')	goto yy84;
				if(yych <= '/')	goto yy86;
				goto yy92;
			}
		}
	} else {
		if(yych <= '^'){
			if(yych <= 'Z'){
				if(yych <= '@')	goto yy86;
				goto yy84;
			} else {
				if(yych == '\\')	goto yy91;
				goto yy86;
			}
		} else {
			if(yych <= 'f'){
				if(yych <= '_')	goto yy84;
				if(yych <= '`')	goto yy86;
				goto yy92;
			} else {
				if(yych <= 'z')	goto yy84;
				if(yych <= 0x7F)	goto yy86;
				goto yy84;
			}
		}
	}
yy94:	yyaccept = 4;
	YYMARKER = ++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= 'Z'){
		if(yych <= '-'){
			if(yych == 0x0A)	goto yy84;
			if(yych <= ',')	goto yy86;
			goto yy84;
		} else {
			if(yych <= '/')	goto yy86;
			if(yych <= '9')	goto yy84;
			if(yych <= '@')	goto yy86;
			goto yy84;
		}
	} else {
		if(yych <= '_'){
			if(yych == '\\')	goto yy91;
			if(yych <= '^')	goto yy86;
			goto yy84;
		} else {
			if(yych <= '`')	goto yy86;
			if(yych <= 'z')	goto yy84;
			if(yych <= 0x7F)	goto yy86;
			goto yy84;
		}
	}
yy95:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy75;
	if(yych <= '9')	goto yy79;
	goto yy75;
yy96:	yyaccept = 3;
	YYMARKER = ++YYCURSOR;
	if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
	yych = *YYCURSOR;
	goto yy97;
yy97:	if(yych <= '@'){
		if(yych <= '-'){
			if(yych == '%')	goto yy81;
			if(yych <= ',')	goto yy16;
			goto yy83;
		} else {
			if(yych <= '.')	goto yy95;
			if(yych <= '/')	goto yy16;
			if(yych <= '9')	goto yy96;
			goto yy16;
		}
	} else {
		if(yych <= '^'){
			if(yych <= 'Z')	goto yy84;
			if(yych == '\\')	goto yy87;
			goto yy16;
		} else {
			if(yych <= '`'){
				if(yych <= '_')	goto yy84;
				goto yy16;
			} else {
				if(yych <= 'z')	goto yy84;
				if(yych <= 0x7F)	goto yy16;
				goto yy84;
			}
		}
	}
yy98:	yyaccept = 5;
	YYMARKER = ++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy99;
yy99:	if(yych <= '['){
		if(yych <= '/'){
			if(yych == '-')	goto yy98;
			goto yy100;
		} else {
			if(yych <= '9')	goto yy98;
			if(yych <= '@')	goto yy100;
			if(yych <= 'Z')	goto yy98;
			goto yy100;
		}
	} else {
		if(yych <= '_'){
			if(yych <= '\\')	goto yy101;
			if(yych >= '_')	goto yy98;
			goto yy100;
		} else {
			if(yych <= '`')	goto yy100;
			if(yych <= 'z')	goto yy98;
			if(yych >= 0x80)	goto yy98;
			goto yy100;
		}
	}
yy100:
#line 66 "scanner.l"
{ return HASH; }
#line 785 "<stdout>"
yy101:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= 0x0D){
		if(yych == 0x0A)	goto yy75;
		if(yych <= 0x0B)	goto yy98;
		goto yy75;
	} else {
		if(yych <= '9'){
			if(yych <= '/')	goto yy98;
			goto yy102;
		} else {
			if(yych <= '`')	goto yy98;
			if(yych >= 'g')	goto yy98;
			goto yy102;
		}
	}
yy102:	yyaccept = 5;
	YYMARKER = ++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy103;
yy103:	if(yych <= '9'){
		if(yych <= 0x0D){
			if(yych <= 0x0A){
				if(yych <= 0x08)	goto yy100;
				goto yy98;
			} else {
				if(yych <= 0x0B)	goto yy100;
				if(yych <= 0x0C)	goto yy98;
				goto yy104;
			}
		} else {
			if(yych <= ','){
				if(yych == ' ')	goto yy98;
				goto yy100;
			} else {
				if(yych <= '-')	goto yy98;
				if(yych <= '/')	goto yy100;
				goto yy102;
			}
		}
	} else {
		if(yych <= '^'){
			if(yych <= 'Z'){
				if(yych <= '@')	goto yy100;
				goto yy98;
			} else {
				if(yych == '\\')	goto yy101;
				goto yy100;
			}
		} else {
			if(yych <= 'f'){
				if(yych <= '_')	goto yy98;
				if(yych <= '`')	goto yy100;
				goto yy102;
			} else {
				if(yych <= 'z')	goto yy98;
				if(yych <= 0x7F)	goto yy100;
				goto yy98;
			}
		}
	}
yy104:	yyaccept = 5;
	YYMARKER = ++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= 'Z'){
		if(yych <= '-'){
			if(yych == 0x0A)	goto yy98;
			if(yych <= ',')	goto yy100;
			goto yy98;
		} else {
			if(yych <= '/')	goto yy100;
			if(yych <= '9')	goto yy98;
			if(yych <= '@')	goto yy100;
			goto yy98;
		}
	} else {
		if(yych <= '_'){
			if(yych == '\\')	goto yy101;
			if(yych <= '^')	goto yy100;
			goto yy98;
		} else {
			if(yych <= '`')	goto yy100;
			if(yych <= 'z')	goto yy98;
			if(yych <= 0x7F)	goto yy100;
			goto yy98;
		}
	}
yy105:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy106;
yy106:	if(yych <= '\''){
		if(yych <= 0x09){
			if(yych <= 0x08)	goto yy75;
			goto yy105;
		} else {
			if(yych <= 0x1F)	goto yy75;
			if(yych <= '&')	goto yy105;
			goto yy109;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '[')	goto yy105;
			goto yy107;
		} else {
			if(yych == 0x7F)	goto yy75;
			goto yy105;
		}
	}
yy107:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy108;
yy108:	if(yych <= '/'){
		if(yych <= 0x0D){
			if(yych <= 0x0C)	goto yy105;
			goto yy114;
		} else {
			if(yych == '\'')	goto yy111;
			goto yy105;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '9')	goto yy112;
			if(yych <= '[')	goto yy105;
			goto yy107;
		} else {
			if(yych <= '`')	goto yy105;
			if(yych <= 'f')	goto yy112;
			goto yy105;
		}
	}
yy109:	++YYCURSOR;
	goto yy110;
yy110:
#line 65 "scanner.l"
{ return STRING; }
#line 926 "<stdout>"
yy111:	yyaccept = 6;
	YYMARKER = ++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= '\''){
		if(yych <= 0x09){
			if(yych <= 0x08)	goto yy110;
			goto yy105;
		} else {
			if(yych <= 0x1F)	goto yy110;
			if(yych <= '&')	goto yy105;
			goto yy109;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '[')	goto yy105;
			goto yy107;
		} else {
			if(yych == 0x7F)	goto yy110;
			goto yy105;
		}
	}
yy112:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy113;
yy113:	if(yych <= '\''){
		if(yych <= 0x0C){
			if(yych <= 0x08)	goto yy75;
			if(yych == 0x0B)	goto yy75;
			goto yy105;
		} else {
			if(yych <= 0x0D)	goto yy115;
			if(yych <= 0x1F)	goto yy75;
			if(yych <= '&')	goto yy105;
			goto yy109;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '/')	goto yy105;
			if(yych <= '9')	goto yy112;
			if(yych <= '[')	goto yy105;
			goto yy107;
		} else {
			if(yych <= 'f'){
				if(yych <= '`')	goto yy105;
				goto yy112;
			} else {
				if(yych == 0x7F)	goto yy75;
				goto yy105;
			}
		}
	}
yy114:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= '\''){
		if(yych <= 0x0A){
			if(yych <= 0x08)	goto yy75;
			goto yy105;
		} else {
			if(yych <= 0x1F)	goto yy75;
			if(yych <= '&')	goto yy105;
			goto yy109;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '[')	goto yy105;
			goto yy107;
		} else {
			if(yych == 0x7F)	goto yy75;
			goto yy105;
		}
	}
yy115:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= '\''){
		if(yych <= 0x0A){
			if(yych <= 0x08)	goto yy75;
			goto yy105;
		} else {
			if(yych <= 0x1F)	goto yy75;
			if(yych <= '&')	goto yy105;
			goto yy109;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '[')	goto yy105;
			goto yy107;
		} else {
			if(yych == 0x7F)	goto yy75;
			goto yy105;
		}
	}
yy116:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy117;
yy117:	if(yych <= '"'){
		if(yych <= 0x09){
			if(yych <= 0x08)	goto yy75;
			goto yy116;
		} else {
			if(yych <= 0x1F)	goto yy75;
			if(yych <= '!')	goto yy116;
			goto yy109;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '[')	goto yy116;
			goto yy118;
		} else {
			if(yych == 0x7F)	goto yy75;
			goto yy116;
		}
	}
yy118:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy119;
yy119:	if(yych <= '/'){
		if(yych <= 0x0D){
			if(yych <= 0x0C)	goto yy116;
			goto yy123;
		} else {
			if(yych != '"')	goto yy116;
			goto yy120;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '9')	goto yy121;
			if(yych <= '[')	goto yy116;
			goto yy118;
		} else {
			if(yych <= '`')	goto yy116;
			if(yych <= 'f')	goto yy121;
			goto yy116;
		}
	}
yy120:	yyaccept = 6;
	YYMARKER = ++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= '"'){
		if(yych <= 0x09){
			if(yych <= 0x08)	goto yy110;
			goto yy116;
		} else {
			if(yych <= 0x1F)	goto yy110;
			if(yych <= '!')	goto yy116;
			goto yy109;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '[')	goto yy116;
			goto yy118;
		} else {
			if(yych == 0x7F)	goto yy110;
			goto yy116;
		}
	}
yy121:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy122;
yy122:	if(yych <= '"'){
		if(yych <= 0x0C){
			if(yych <= 0x08)	goto yy75;
			if(yych == 0x0B)	goto yy75;
			goto yy116;
		} else {
			if(yych <= 0x0D)	goto yy124;
			if(yych <= 0x1F)	goto yy75;
			if(yych <= '!')	goto yy116;
			goto yy109;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '/')	goto yy116;
			if(yych <= '9')	goto yy121;
			if(yych <= '[')	goto yy116;
			goto yy118;
		} else {
			if(yych <= 'f'){
				if(yych <= '`')	goto yy116;
				goto yy121;
			} else {
				if(yych == 0x7F)	goto yy75;
				goto yy116;
			}
		}
	}
yy123:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= '"'){
		if(yych <= 0x0A){
			if(yych <= 0x08)	goto yy75;
			goto yy116;
		} else {
			if(yych <= 0x1F)	goto yy75;
			if(yych <= '!')	goto yy116;
			goto yy109;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '[')	goto yy116;
			goto yy118;
		} else {
			if(yych == 0x7F)	goto yy75;
			goto yy116;
		}
	}
yy124:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= '"'){
		if(yych <= 0x0A){
			if(yych <= 0x08)	goto yy75;
			goto yy116;
		} else {
			if(yych <= 0x1F)	goto yy75;
			if(yych <= '!')	goto yy116;
			goto yy109;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '[')	goto yy116;
			goto yy118;
		} else {
			if(yych == 0x7F)	goto yy75;
			goto yy116;
		}
	}
yy125:	yych = *++YYCURSOR;
	if(yych <= '^'){
		if(yych <= 'Z'){
			if(yych <= '@')	goto yy75;
			goto yy126;
		} else {
			if(yych == '\\')	goto yy129;
			goto yy75;
		}
	} else {
		if(yych <= '`'){
			if(yych >= '`')	goto yy75;
			goto yy126;
		} else {
			if(yych <= 'z')	goto yy126;
			if(yych <= 0x7F)	goto yy75;
			goto yy126;
		}
	}
yy126:	yyaccept = 7;
	YYMARKER = ++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy127;
yy127:	if(yych <= '['){
		if(yych <= '/'){
			if(yych == '-')	goto yy126;
			goto yy128;
		} else {
			if(yych <= '9')	goto yy126;
			if(yych <= '@')	goto yy128;
			if(yych <= 'Z')	goto yy126;
			goto yy128;
		}
	} else {
		if(yych <= '_'){
			if(yych <= '\\')	goto yy133;
			if(yych >= '_')	goto yy126;
			goto yy128;
		} else {
			if(yych <= '`')	goto yy128;
			if(yych <= 'z')	goto yy126;
			if(yych >= 0x80)	goto yy126;
			goto yy128;
		}
	}
yy128:
#line 64 "scanner.l"
{ return ATKEYWORD; }
#line 1211 "<stdout>"
yy129:	yych = *++YYCURSOR;
	if(yych <= 0x0D){
		if(yych == 0x0A)	goto yy75;
		if(yych <= 0x0B)	goto yy126;
		goto yy75;
	} else {
		if(yych <= '9'){
			if(yych <= '/')	goto yy126;
			goto yy130;
		} else {
			if(yych <= '`')	goto yy126;
			if(yych >= 'g')	goto yy126;
			goto yy130;
		}
	}
yy130:	yyaccept = 7;
	YYMARKER = ++YYCURSOR;
	if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
	yych = *YYCURSOR;
	goto yy131;
yy131:	if(yych <= '9'){
		if(yych <= 0x0D){
			if(yych <= 0x0A){
				if(yych <= 0x08)	goto yy128;
				goto yy126;
			} else {
				if(yych <= 0x0B)	goto yy128;
				if(yych <= 0x0C)	goto yy126;
				goto yy132;
			}
		} else {
			if(yych <= ','){
				if(yych == ' ')	goto yy126;
				goto yy128;
			} else {
				if(yych <= '-')	goto yy126;
				if(yych <= '/')	goto yy128;
				goto yy130;
			}
		}
	} else {
		if(yych <= '^'){
			if(yych <= 'Z'){
				if(yych <= '@')	goto yy128;
				goto yy126;
			} else {
				if(yych == '\\')	goto yy133;
				goto yy128;
			}
		} else {
			if(yych <= 'f'){
				if(yych <= '_')	goto yy126;
				if(yych <= '`')	goto yy128;
				goto yy130;
			} else {
				if(yych <= 'z')	goto yy126;
				if(yych <= 0x7F)	goto yy128;
				goto yy126;
			}
		}
	}
yy132:	yyaccept = 7;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych == 0x0A)	goto yy126;
	goto yy127;
yy133:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= 0x0D){
		if(yych == 0x0A)	goto yy75;
		if(yych <= 0x0B)	goto yy126;
		goto yy75;
	} else {
		if(yych <= '9'){
			if(yych <= '/')	goto yy126;
			goto yy134;
		} else {
			if(yych <= '`')	goto yy126;
			if(yych >= 'g')	goto yy126;
			goto yy134;
		}
	}
yy134:	yyaccept = 7;
	YYMARKER = ++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy135;
yy135:	if(yych <= '9'){
		if(yych <= 0x0D){
			if(yych <= 0x0A){
				if(yych <= 0x08)	goto yy128;
				goto yy126;
			} else {
				if(yych <= 0x0B)	goto yy128;
				if(yych <= 0x0C)	goto yy126;
				goto yy136;
			}
		} else {
			if(yych <= ','){
				if(yych == ' ')	goto yy126;
				goto yy128;
			} else {
				if(yych <= '-')	goto yy126;
				if(yych <= '/')	goto yy128;
				goto yy134;
			}
		}
	} else {
		if(yych <= '^'){
			if(yych <= 'Z'){
				if(yych <= '@')	goto yy128;
				goto yy126;
			} else {
				if(yych == '\\')	goto yy133;
				goto yy128;
			}
		} else {
			if(yych <= 'f'){
				if(yych <= '_')	goto yy126;
				if(yych <= '`')	goto yy128;
				goto yy134;
			} else {
				if(yych <= 'z')	goto yy126;
				if(yych <= 0x7F)	goto yy128;
				goto yy126;
			}
		}
	}
yy136:	yyaccept = 7;
	YYMARKER = ++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= 'Z'){
		if(yych <= '-'){
			if(yych == 0x0A)	goto yy126;
			if(yych <= ',')	goto yy128;
			goto yy126;
		} else {
			if(yych <= '/')	goto yy128;
			if(yych <= '9')	goto yy126;
			if(yych <= '@')	goto yy128;
			goto yy126;
		}
	} else {
		if(yych <= '_'){
			if(yych == '\\')	goto yy133;
			if(yych <= '^')	goto yy128;
			goto yy126;
		} else {
			if(yych <= '`')	goto yy128;
			if(yych <= 'z')	goto yy126;
			if(yych <= 0x7F)	goto yy128;
			goto yy126;
		}
	}
yy137:	yyaccept = 1;
	YYMARKER = ++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy138;
yy138:	if(yych <= 'Z'){
		if(yych <= '-'){
			if(yych == '(')	goto yy143;
			if(yych <= ',')	goto yy5;
			goto yy137;
		} else {
			if(yych <= '/')	goto yy5;
			if(yych <= '9')	goto yy137;
			if(yych <= '@')	goto yy5;
			goto yy137;
		}
	} else {
		if(yych <= '_'){
			if(yych == '\\')	goto yy142;
			if(yych <= '^')	goto yy5;
			goto yy137;
		} else {
			if(yych <= '`')	goto yy5;
			if(yych <= 'z')	goto yy137;
			if(yych <= 0x7F)	goto yy5;
			goto yy137;
		}
	}
yy139:	yyaccept = 1;
	YYMARKER = ++YYCURSOR;
	if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
	yych = *YYCURSOR;
	goto yy140;
yy140:	if(yych <= '/'){
		if(yych <= 0x1F){
			if(yych <= 0x0B){
				if(yych <= 0x08)	goto yy5;
				if(yych <= 0x0A)	goto yy137;
				goto yy5;
			} else {
				if(yych <= 0x0C)	goto yy137;
				if(yych >= 0x0E)	goto yy5;
				goto yy141;
			}
		} else {
			if(yych <= '('){
				if(yych <= ' ')	goto yy137;
				if(yych <= '\'')	goto yy5;
				goto yy143;
			} else {
				if(yych == '-')	goto yy137;
				goto yy5;
			}
		}
	} else {
		if(yych <= '^'){
			if(yych <= 'Z'){
				if(yych <= '9')	goto yy139;
				if(yych <= '@')	goto yy5;
				goto yy137;
			} else {
				if(yych == '\\')	goto yy142;
				goto yy5;
			}
		} else {
			if(yych <= 'f'){
				if(yych <= '_')	goto yy137;
				if(yych <= '`')	goto yy5;
				goto yy139;
			} else {
				if(yych <= 'z')	goto yy137;
				if(yych <= 0x7F)	goto yy5;
				goto yy137;
			}
		}
	}
yy141:	yyaccept = 1;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych == 0x0A)	goto yy137;
	goto yy138;
yy142:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= 0x0D){
		if(yych == 0x0A)	goto yy75;
		if(yych <= 0x0B)	goto yy137;
		goto yy75;
	} else {
		if(yych <= '9'){
			if(yych <= '/')	goto yy137;
			goto yy145;
		} else {
			if(yych <= '`')	goto yy137;
			if(yych <= 'f')	goto yy145;
			goto yy137;
		}
	}
yy143:	++YYCURSOR;
	goto yy144;
yy144:
#line 93 "scanner.l"
{ return FUNCTION; }
#line 1469 "<stdout>"
yy145:	yyaccept = 1;
	YYMARKER = ++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy146;
yy146:	if(yych <= '/'){
		if(yych <= 0x1F){
			if(yych <= 0x0B){
				if(yych <= 0x08)	goto yy5;
				if(yych <= 0x0A)	goto yy137;
				goto yy5;
			} else {
				if(yych <= 0x0C)	goto yy137;
				if(yych >= 0x0E)	goto yy5;
				goto yy147;
			}
		} else {
			if(yych <= '('){
				if(yych <= ' ')	goto yy137;
				if(yych <= '\'')	goto yy5;
				goto yy143;
			} else {
				if(yych == '-')	goto yy137;
				goto yy5;
			}
		}
	} else {
		if(yych <= '^'){
			if(yych <= 'Z'){
				if(yych <= '9')	goto yy145;
				if(yych <= '@')	goto yy5;
				goto yy137;
			} else {
				if(yych == '\\')	goto yy142;
				goto yy5;
			}
		} else {
			if(yych <= 'f'){
				if(yych <= '_')	goto yy137;
				if(yych <= '`')	goto yy5;
				goto yy145;
			} else {
				if(yych <= 'z')	goto yy137;
				if(yych <= 0x7F)	goto yy5;
				goto yy137;
			}
		}
	}
yy147:	yyaccept = 1;
	YYMARKER = ++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= '@'){
		if(yych <= '('){
			if(yych == 0x0A)	goto yy137;
			if(yych <= '\'')	goto yy5;
			goto yy143;
		} else {
			if(yych <= '-'){
				if(yych <= ',')	goto yy5;
				goto yy137;
			} else {
				if(yych <= '/')	goto yy5;
				if(yych <= '9')	goto yy137;
				goto yy5;
			}
		}
	} else {
		if(yych <= '^'){
			if(yych <= 'Z')	goto yy137;
			if(yych == '\\')	goto yy142;
			goto yy5;
		} else {
			if(yych <= '`'){
				if(yych <= '_')	goto yy137;
				goto yy5;
			} else {
				if(yych <= 'z')	goto yy137;
				if(yych <= 0x7F)	goto yy5;
				goto yy137;
			}
		}
	}
yy148:	yyaccept = 1;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych != 'l')	goto yy138;
	goto yy149;
yy149:	yyaccept = 1;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych != '(')	goto yy138;
	goto yy150;
yy150:	yyaccept = 8;
	yych = *(YYMARKER = ++YYCURSOR);
	if(yych <= 0x1F){
		if(yych <= 0x0A){
			if(yych <= 0x08)	goto yy144;
			goto yy152;
		} else {
			if(yych <= 0x0B)	goto yy144;
			if(yych <= 0x0D)	goto yy152;
			goto yy144;
		}
	} else {
		if(yych <= '('){
			if(yych <= '\'')	goto yy152;
			goto yy144;
		} else {
			if(yych == 0x7F)	goto yy144;
			goto yy152;
		}
	}
yy151:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy152;
yy152:	if(yych <= '"'){
		if(yych <= 0x0D){
			if(yych <= 0x08)	goto yy75;
			if(yych == 0x0B)	goto yy75;
			goto yy151;
		} else {
			if(yych <= 0x1F)	goto yy75;
			if(yych <= ' ')	goto yy151;
			if(yych <= '!')	goto yy157;
			goto yy153;
		}
	} else {
		if(yych <= ')'){
			if(yych <= '&')	goto yy157;
			if(yych <= '\'')	goto yy155;
			if(yych <= '(')	goto yy75;
			goto yy161;
		} else {
			if(yych <= '\\'){
				if(yych <= '[')	goto yy157;
				goto yy159;
			} else {
				if(yych == 0x7F)	goto yy75;
				goto yy157;
			}
		}
	}
yy153:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy154;
yy154:	if(yych <= '"'){
		if(yych <= 0x09){
			if(yych <= 0x08)	goto yy75;
			goto yy153;
		} else {
			if(yych <= 0x1F)	goto yy75;
			if(yych <= '!')	goto yy153;
			goto yy171;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '[')	goto yy153;
			goto yy180;
		} else {
			if(yych == 0x7F)	goto yy75;
			goto yy153;
		}
	}
yy155:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy156;
yy156:	if(yych <= '\''){
		if(yych <= 0x09){
			if(yych <= 0x08)	goto yy75;
			goto yy155;
		} else {
			if(yych <= 0x1F)	goto yy75;
			if(yych <= '&')	goto yy155;
			goto yy171;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '[')	goto yy155;
			goto yy169;
		} else {
			if(yych == 0x7F)	goto yy75;
			goto yy155;
		}
	}
yy157:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy158;
yy158:	if(yych <= '"'){
		if(yych <= 0x0D){
			if(yych <= 0x08)	goto yy75;
			if(yych == 0x0B)	goto yy75;
			goto yy166;
		} else {
			if(yych <= 0x1F)	goto yy75;
			if(yych <= ' ')	goto yy166;
			if(yych <= '!')	goto yy157;
			goto yy75;
		}
	} else {
		if(yych <= '['){
			if(yych <= '&')	goto yy157;
			if(yych <= '(')	goto yy75;
			if(yych <= ')')	goto yy161;
			goto yy157;
		} else {
			if(yych <= '\\')	goto yy159;
			if(yych == 0x7F)	goto yy75;
			goto yy157;
		}
	}
yy159:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy160;
yy160:	if(yych <= ')'){
		if(yych <= 0x0B){
			if(yych == 0x0A)	goto yy166;
			goto yy157;
		} else {
			if(yych <= 0x0D)	goto yy166;
			if(yych <= '(')	goto yy157;
			goto yy163;
		}
	} else {
		if(yych <= '['){
			if(yych <= '/')	goto yy157;
			if(yych <= '9')	goto yy164;
			goto yy157;
		} else {
			if(yych <= '\\')	goto yy159;
			if(yych <= '`')	goto yy157;
			if(yych <= 'f')	goto yy164;
			goto yy157;
		}
	}
yy161:	++YYCURSOR;
	goto yy162;
yy162:
#line 73 "scanner.l"
{ return URI; }
#line 1713 "<stdout>"
yy163:	yyaccept = 9;
	YYMARKER = ++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= '"'){
		if(yych <= 0x0D){
			if(yych <= 0x08)	goto yy162;
			if(yych == 0x0B)	goto yy162;
			goto yy166;
		} else {
			if(yych <= 0x1F)	goto yy162;
			if(yych <= ' ')	goto yy166;
			if(yych <= '!')	goto yy157;
			goto yy162;
		}
	} else {
		if(yych <= '['){
			if(yych <= '&')	goto yy157;
			if(yych <= '(')	goto yy162;
			if(yych <= ')')	goto yy161;
			goto yy157;
		} else {
			if(yych <= '\\')	goto yy159;
			if(yych == 0x7F)	goto yy162;
			goto yy157;
		}
	}
yy164:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy165;
yy165:	if(yych <= '('){
		if(yych <= 0x0D){
			if(yych <= 0x0A){
				if(yych <= 0x08)	goto yy75;
				goto yy157;
			} else {
				if(yych <= 0x0B)	goto yy75;
				if(yych <= 0x0C)	goto yy157;
				goto yy168;
			}
		} else {
			if(yych <= '!'){
				if(yych <= 0x1F)	goto yy75;
				goto yy157;
			} else {
				if(yych <= '"')	goto yy75;
				if(yych <= '&')	goto yy157;
				goto yy75;
			}
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '/'){
				if(yych <= ')')	goto yy161;
				goto yy157;
			} else {
				if(yych <= '9')	goto yy164;
				if(yych <= '[')	goto yy157;
				goto yy159;
			}
		} else {
			if(yych <= 'f'){
				if(yych <= '`')	goto yy157;
				goto yy164;
			} else {
				if(yych == 0x7F)	goto yy75;
				goto yy157;
			}
		}
	}
yy166:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy167;
yy167:	if(yych <= 0x0D){
		if(yych <= 0x08)	goto yy75;
		if(yych == 0x0B)	goto yy75;
		goto yy166;
	} else {
		if(yych <= ' '){
			if(yych <= 0x1F)	goto yy75;
			goto yy166;
		} else {
			if(yych == ')')	goto yy161;
			goto yy75;
		}
	}
yy168:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= '!'){
		if(yych <= 0x0B){
			if(yych <= 0x08)	goto yy75;
			if(yych <= 0x09)	goto yy166;
			if(yych <= 0x0A)	goto yy157;
			goto yy75;
		} else {
			if(yych <= 0x0D)	goto yy166;
			if(yych <= 0x1F)	goto yy75;
			if(yych <= ' ')	goto yy166;
			goto yy157;
		}
	} else {
		if(yych <= ')'){
			if(yych <= '"')	goto yy75;
			if(yych <= '&')	goto yy157;
			if(yych <= '(')	goto yy75;
			goto yy161;
		} else {
			if(yych <= '\\'){
				if(yych <= '[')	goto yy157;
				goto yy159;
			} else {
				if(yych == 0x7F)	goto yy75;
				goto yy157;
			}
		}
	}
yy169:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy170;
yy170:	if(yych <= '/'){
		if(yych <= 0x0D){
			if(yych <= 0x0C)	goto yy155;
			goto yy177;
		} else {
			if(yych == '\'')	goto yy173;
			goto yy155;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '9')	goto yy175;
			if(yych <= '[')	goto yy155;
			goto yy169;
		} else {
			if(yych <= '`')	goto yy155;
			if(yych <= 'f')	goto yy175;
			goto yy155;
		}
	}
yy171:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy172;
yy172:	if(yych <= 0x0D){
		if(yych <= 0x08)	goto yy75;
		if(yych == 0x0B)	goto yy75;
		goto yy171;
	} else {
		if(yych <= ' '){
			if(yych <= 0x1F)	goto yy75;
			goto yy171;
		} else {
			if(yych == ')')	goto yy161;
			goto yy75;
		}
	}
yy173:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy174;
yy174:	if(yych <= '&'){
		if(yych <= 0x0B){
			if(yych <= 0x08)	goto yy75;
			if(yych <= 0x09)	goto yy173;
			if(yych <= 0x0A)	goto yy171;
			goto yy75;
		} else {
			if(yych <= 0x0D)	goto yy171;
			if(yych <= 0x1F)	goto yy75;
			if(yych <= ' ')	goto yy173;
			goto yy155;
		}
	} else {
		if(yych <= '['){
			if(yych <= '\'')	goto yy171;
			if(yych == ')')	goto yy179;
			goto yy155;
		} else {
			if(yych <= '\\')	goto yy169;
			if(yych == 0x7F)	goto yy75;
			goto yy155;
		}
	}
yy175:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy176;
yy176:	if(yych <= '\''){
		if(yych <= 0x0C){
			if(yych <= 0x08)	goto yy75;
			if(yych == 0x0B)	goto yy75;
			goto yy155;
		} else {
			if(yych <= 0x0D)	goto yy178;
			if(yych <= 0x1F)	goto yy75;
			if(yych <= '&')	goto yy155;
			goto yy171;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '/')	goto yy155;
			if(yych <= '9')	goto yy175;
			if(yych <= '[')	goto yy155;
			goto yy169;
		} else {
			if(yych <= 'f'){
				if(yych <= '`')	goto yy155;
				goto yy175;
			} else {
				if(yych == 0x7F)	goto yy75;
				goto yy155;
			}
		}
	}
yy177:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= '\''){
		if(yych <= 0x0A){
			if(yych <= 0x08)	goto yy75;
			goto yy155;
		} else {
			if(yych <= 0x1F)	goto yy75;
			if(yych <= '&')	goto yy155;
			goto yy171;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '[')	goto yy155;
			goto yy169;
		} else {
			if(yych == 0x7F)	goto yy75;
			goto yy155;
		}
	}
yy178:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= '\''){
		if(yych <= 0x0A){
			if(yych <= 0x08)	goto yy75;
			goto yy155;
		} else {
			if(yych <= 0x1F)	goto yy75;
			if(yych <= '&')	goto yy155;
			goto yy171;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '[')	goto yy155;
			goto yy169;
		} else {
			if(yych == 0x7F)	goto yy75;
			goto yy155;
		}
	}
yy179:	yyaccept = 9;
	YYMARKER = ++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= '\''){
		if(yych <= 0x09){
			if(yych <= 0x08)	goto yy162;
			goto yy155;
		} else {
			if(yych <= 0x1F)	goto yy162;
			if(yych <= '&')	goto yy155;
			goto yy171;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '[')	goto yy155;
			goto yy169;
		} else {
			if(yych == 0x7F)	goto yy162;
			goto yy155;
		}
	}
yy180:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy181;
yy181:	if(yych <= '/'){
		if(yych <= 0x0D){
			if(yych <= 0x0C)	goto yy153;
			goto yy186;
		} else {
			if(yych != '"')	goto yy153;
			goto yy182;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '9')	goto yy184;
			if(yych <= '[')	goto yy153;
			goto yy180;
		} else {
			if(yych <= '`')	goto yy153;
			if(yych <= 'f')	goto yy184;
			goto yy153;
		}
	}
yy182:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy183;
yy183:	if(yych <= '!'){
		if(yych <= 0x0B){
			if(yych <= 0x08)	goto yy75;
			if(yych <= 0x09)	goto yy182;
			if(yych <= 0x0A)	goto yy171;
			goto yy75;
		} else {
			if(yych <= 0x0D)	goto yy171;
			if(yych <= 0x1F)	goto yy75;
			if(yych <= ' ')	goto yy182;
			goto yy153;
		}
	} else {
		if(yych <= '['){
			if(yych <= '"')	goto yy171;
			if(yych == ')')	goto yy188;
			goto yy153;
		} else {
			if(yych <= '\\')	goto yy180;
			if(yych == 0x7F)	goto yy75;
			goto yy153;
		}
	}
yy184:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy185;
yy185:	if(yych <= '"'){
		if(yych <= 0x0C){
			if(yych <= 0x08)	goto yy75;
			if(yych == 0x0B)	goto yy75;
			goto yy153;
		} else {
			if(yych <= 0x0D)	goto yy187;
			if(yych <= 0x1F)	goto yy75;
			if(yych <= '!')	goto yy153;
			goto yy171;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '/')	goto yy153;
			if(yych <= '9')	goto yy184;
			if(yych <= '[')	goto yy153;
			goto yy180;
		} else {
			if(yych <= 'f'){
				if(yych <= '`')	goto yy153;
				goto yy184;
			} else {
				if(yych == 0x7F)	goto yy75;
				goto yy153;
			}
		}
	}
yy186:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= '"'){
		if(yych <= 0x0A){
			if(yych <= 0x08)	goto yy75;
			goto yy153;
		} else {
			if(yych <= 0x1F)	goto yy75;
			if(yych <= '!')	goto yy153;
			goto yy171;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '[')	goto yy153;
			goto yy180;
		} else {
			if(yych == 0x7F)	goto yy75;
			goto yy153;
		}
	}
yy187:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= '"'){
		if(yych <= 0x0A){
			if(yych <= 0x08)	goto yy75;
			goto yy153;
		} else {
			if(yych <= 0x1F)	goto yy75;
			if(yych <= '!')	goto yy153;
			goto yy171;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '[')	goto yy153;
			goto yy180;
		} else {
			if(yych == 0x7F)	goto yy75;
			goto yy153;
		}
	}
yy188:	yyaccept = 9;
	YYMARKER = ++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	if(yych <= '"'){
		if(yych <= 0x09){
			if(yych <= 0x08)	goto yy162;
			goto yy153;
		} else {
			if(yych <= 0x1F)	goto yy162;
			if(yych <= '!')	goto yy153;
			goto yy171;
		}
	} else {
		if(yych <= '\\'){
			if(yych <= '[')	goto yy153;
			goto yy180;
		} else {
			if(yych == 0x7F)	goto yy162;
			goto yy153;
		}
	}
yy189:	yych = *++YYCURSOR;
	if(yych <= '>'){
		if(yych <= '/')	goto yy75;
		if(yych >= ':')	goto yy75;
		goto yy190;
	} else {
		if(yych == '@')	goto yy75;
		if(yych >= 'G')	goto yy75;
		goto yy190;
	}
yy190:	yyaccept = 10;
	YYMARKER = ++YYCURSOR;
	if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
	yych = *YYCURSOR;
	goto yy191;
yy191:	if(yych <= '9'){
		if(yych == '-')	goto yy193;
		if(yych >= '0')	goto yy190;
		goto yy192;
	} else {
		if(yych <= '?'){
			if(yych >= '?')	goto yy190;
			goto yy192;
		} else {
			if(yych <= '@')	goto yy192;
			if(yych <= 'F')	goto yy190;
			goto yy192;
		}
	}
yy192:
#line 75 "scanner.l"
{ return UNICODE_RANGE; }
#line 2172 "<stdout>"
yy193:	yych = *++YYCURSOR;
	if(yych <= '/')	goto yy75;
	if(yych <= '9')	goto yy194;
	if(yych <= '@')	goto yy75;
	if(yych >= 'G')	goto yy75;
	goto yy194;
yy194:	++YYCURSOR;
	if(YYLIMIT == YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	goto yy195;
yy195:	if(yych <= '/')	goto yy192;
	if(yych <= '9')	goto yy194;
	if(yych <= '@')	goto yy192;
	if(yych <= 'F')	goto yy194;
	goto yy192;
yy196:	yych = *++YYCURSOR;
	if(yych <= 0x0D){
		if(yych == 0x0A)	goto yy75;
		if(yych <= 0x0B)	goto yy137;
		goto yy75;
	} else {
		if(yych <= '9'){
			if(yych <= '/')	goto yy137;
			goto yy139;
		} else {
			if(yych <= '`')	goto yy137;
			if(yych <= 'f')	goto yy139;
			goto yy137;
		}
	}
yy197:	yych = *++YYCURSOR;
	if(yych != '>')	goto yy75;
	goto yy198;
yy198:	++YYCURSOR;
	goto yy199;
yy199:
#line 78 "scanner.l"
{ goto start; /* ignore CDC */ }
#line 2211 "<stdout>"
}
#line 110 "scanner.l"


}
