/* Generated by re2c */
#line 1 "cnokw.re"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define	ADDEQ	257
#define	ANDAND	258
#define	ANDEQ	259
#define	ARRAY	260
#define	ASM	261
#define	AUTO	262
#define	BREAK	263
#define	CASE	264
#define	CHAR	265
#define	CONST	266
#define	CONTINUE	267
#define	DECR	268
#define	DEFAULT	269
#define	DEREF	270
#define	DIVEQ	271
#define	DO	272
#define	DOUBLE	273
#define	ELLIPSIS	274
#define	ELSE	275
#define	ENUM	276
#define	EQL	277
#define	EXTERN	278
#define	FCON	279
#define	FLOAT	280
#define	FOR	281
#define	FUNCTION	282
#define	GEQ	283
#define	GOTO	284
#define	ICON	285
#define	ID	286
#define	IF	287
#define	INCR	288
#define	INT	289
#define	LEQ	290
#define	LONG	291
#define	LSHIFT	292
#define	LSHIFTEQ	293
#define	MODEQ	294
#define	MULEQ	295
#define	NEQ	296
#define	OREQ	297
#define	OROR	298
#define	POINTER	299
#define	REGISTER	300
#define	RETURN	301
#define	RSHIFT	302
#define	RSHIFTEQ	303
#define	SCON	304
#define	SHORT	305
#define	SIGNED	306
#define	SIZEOF	307
#define	STATIC	308
#define	STRUCT	309
#define	SUBEQ	310
#define	SWITCH	311
#define	TYPEDEF	312
#define	UNION	313
#define	UNSIGNED	314
#define	VOID	315
#define	VOLATILE	316
#define	WHILE	317
#define	XOREQ	318
#define	EOI	319

typedef unsigned int uint;
typedef unsigned char uchar;

#define	BSIZE	8192

#define	YYCTYPE		uchar
#define	YYCURSOR	cursor
#define	YYLIMIT		s->lim
#define	YYMARKER	s->ptr
#define	YYFILL(n)	{cursor = fill(s, cursor);}

#define	RET(i)	{s->cur = cursor; return i;}

typedef struct Scanner {
    int			fd;
    uchar		*bot, *tok, *ptr, *cur, *pos, *lim, *top, *eof;
    uint		line;
} Scanner;

uchar *fill(Scanner *s, uchar *cursor){
    if(!s->eof){
	uint cnt = s->tok - s->bot;
	if(cnt){
	    memcpy(s->bot, s->tok, s->lim - s->tok);
	    s->tok = s->bot;
	    s->ptr -= cnt;
	    cursor -= cnt;
	    s->pos -= cnt;
	    s->lim -= cnt;
	}
	if((s->top - s->lim) < BSIZE){
	    uchar *buf = (uchar*) malloc(((s->lim - s->bot) + BSIZE)*sizeof(uchar));
	    memcpy(buf, s->tok, s->lim - s->tok);
	    s->tok = buf;
	    s->ptr = &buf[s->ptr - s->bot];
	    cursor = &buf[cursor - s->bot];
	    s->pos = &buf[s->pos - s->bot];
	    s->lim = &buf[s->lim - s->bot];
	    s->top = &s->lim[BSIZE];
	    free(s->bot);
	    s->bot = buf;
	}
	if((cnt = read(s->fd, (char*) s->lim, BSIZE)) != BSIZE){
	    s->eof = &s->lim[cnt]; *(s->eof)++ = '\n';
	}
	s->lim += cnt;
    }
    return cursor;
}

int scan(Scanner *s){
	uchar *cursor = s->cur;
std:
	s->tok = cursor;
#line 133 "cnokw.re"



#line 130 "<stdout>"
{
	YYCTYPE yych;
	unsigned int yyaccept = 0;

	if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
	yych = *YYCURSOR;
	switch (yych) {
	case '\t':
	case '\v':
	case '\f':
	case ' ':	goto yy58;
	case '\n':	goto yy60;
	case '!':	goto yy34;
	case '"':	goto yy13;
	case '%':	goto yy24;
	case '&':	goto yy26;
	case '\'':	goto yy9;
	case '(':	goto yy46;
	case ')':	goto yy48;
	case '*':	goto yy22;
	case '+':	goto yy18;
	case ',':	goto yy42;
	case '-':	goto yy20;
	case '.':	goto yy11;
	case '/':	goto yy2;
	case '0':	goto yy6;
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy8;
	case ':':	goto yy44;
	case ';':	goto yy36;
	case '<':	goto yy16;
	case '=':	goto yy32;
	case '>':	goto yy14;
	case '?':	goto yy56;
	case 'A':
	case 'B':
	case 'C':
	case 'D':
	case 'E':
	case 'F':
	case 'G':
	case 'H':
	case 'I':
	case 'J':
	case 'K':
	case 'L':
	case 'M':
	case 'N':
	case 'O':
	case 'P':
	case 'Q':
	case 'R':
	case 'S':
	case 'T':
	case 'U':
	case 'V':
	case 'W':
	case 'X':
	case 'Y':
	case 'Z':
	case '_':
	case 'a':
	case 'b':
	case 'c':
	case 'd':
	case 'e':
	case 'f':
	case 'g':
	case 'h':
	case 'i':
	case 'j':
	case 'k':
	case 'l':
	case 'm':
	case 'n':
	case 'o':
	case 'p':
	case 'q':
	case 'r':
	case 's':
	case 't':
	case 'u':
	case 'v':
	case 'w':
	case 'x':
	case 'y':
	case 'z':	goto yy4;
	case '[':	goto yy50;
	case ']':	goto yy52;
	case '^':	goto yy28;
	case '{':	goto yy38;
	case '|':	goto yy30;
	case '}':	goto yy40;
	case '~':	goto yy54;
	default:	goto yy62;
	}
yy2:
	++YYCURSOR;
	switch ((yych = *YYCURSOR)) {
	case '*':	goto yy168;
	case '=':	goto yy166;
	default:	goto yy3;
	}
yy3:
#line 189 "cnokw.re"
	{ RET('/'); }
#line 244 "<stdout>"
yy4:
	++YYCURSOR;
	yych = *YYCURSOR;
	goto yy165;
yy5:
#line 138 "cnokw.re"
	{ RET(ID); }
#line 252 "<stdout>"
yy6:
	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'L':
	case 'U':
	case 'l':
	case 'u':	goto yy140;
	case 'X':
	case 'x':	goto yy157;
	default:	goto yy156;
	}
yy7:
#line 142 "cnokw.re"
	{ RET(ICON); }
#line 268 "<stdout>"
yy8:
	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	goto yy138;
yy9:
	yyaccept = 1;
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case '\n':	goto yy10;
	default:	goto yy128;
	}
yy10:
#line 208 "cnokw.re"
	{
		printf("unexpected character: %c\n", *s->tok);
		goto std;
	    }
#line 286 "<stdout>"
yy11:
	yyaccept = 2;
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case '.':	goto yy116;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy117;
	default:	goto yy12;
	}
yy12:
#line 182 "cnokw.re"
	{ RET('.'); }
#line 307 "<stdout>"
yy13:
	yyaccept = 1;
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case '\n':	goto yy10;
	default:	goto yy106;
	}
yy14:
	++YYCURSOR;
	switch ((yych = *YYCURSOR)) {
	case '=':	goto yy99;
	case '>':	goto yy101;
	default:	goto yy15;
	}
yy15:
#line 192 "cnokw.re"
	{ RET('>'); }
#line 325 "<stdout>"
yy16:
	++YYCURSOR;
	switch ((yych = *YYCURSOR)) {
	case '<':	goto yy95;
	case '=':	goto yy93;
	default:	goto yy17;
	}
yy17:
#line 191 "cnokw.re"
	{ RET('<'); }
#line 336 "<stdout>"
yy18:
	++YYCURSOR;
	switch ((yych = *YYCURSOR)) {
	case '+':	goto yy89;
	case '=':	goto yy91;
	default:	goto yy19;
	}
yy19:
#line 187 "cnokw.re"
	{ RET('+'); }
#line 347 "<stdout>"
yy20:
	++YYCURSOR;
	switch ((yych = *YYCURSOR)) {
	case '-':	goto yy85;
	case '=':	goto yy87;
	case '>':	goto yy83;
	default:	goto yy21;
	}
yy21:
#line 186 "cnokw.re"
	{ RET('-'); }
#line 359 "<stdout>"
yy22:
	++YYCURSOR;
	switch ((yych = *YYCURSOR)) {
	case '=':	goto yy81;
	default:	goto yy23;
	}
yy23:
#line 188 "cnokw.re"
	{ RET('*'); }
#line 369 "<stdout>"
yy24:
	++YYCURSOR;
	switch ((yych = *YYCURSOR)) {
	case '=':	goto yy79;
	default:	goto yy25;
	}
yy25:
#line 190 "cnokw.re"
	{ RET('%'); }
#line 379 "<stdout>"
yy26:
	++YYCURSOR;
	switch ((yych = *YYCURSOR)) {
	case '&':	goto yy75;
	case '=':	goto yy77;
	default:	goto yy27;
	}
yy27:
#line 183 "cnokw.re"
	{ RET('&'); }
#line 390 "<stdout>"
yy28:
	++YYCURSOR;
	switch ((yych = *YYCURSOR)) {
	case '=':	goto yy73;
	default:	goto yy29;
	}
yy29:
#line 193 "cnokw.re"
	{ RET('^'); }
#line 400 "<stdout>"
yy30:
	++YYCURSOR;
	switch ((yych = *YYCURSOR)) {
	case '=':	goto yy71;
	case '|':	goto yy69;
	default:	goto yy31;
	}
yy31:
#line 194 "cnokw.re"
	{ RET('|'); }
#line 411 "<stdout>"
yy32:
	++YYCURSOR;
	switch ((yych = *YYCURSOR)) {
	case '=':	goto yy67;
	default:	goto yy33;
	}
yy33:
#line 177 "cnokw.re"
	{ RET('='); }
#line 421 "<stdout>"
yy34:
	++YYCURSOR;
	switch ((yych = *YYCURSOR)) {
	case '=':	goto yy65;
	default:	goto yy35;
	}
yy35:
#line 184 "cnokw.re"
	{ RET('!'); }
#line 431 "<stdout>"
yy36:
	++YYCURSOR;
#line 172 "cnokw.re"
	{ RET(';'); }
#line 436 "<stdout>"
yy38:
	++YYCURSOR;
#line 173 "cnokw.re"
	{ RET('{'); }
#line 441 "<stdout>"
yy40:
	++YYCURSOR;
#line 174 "cnokw.re"
	{ RET('}'); }
#line 446 "<stdout>"
yy42:
	++YYCURSOR;
#line 175 "cnokw.re"
	{ RET(','); }
#line 451 "<stdout>"
yy44:
	++YYCURSOR;
#line 176 "cnokw.re"
	{ RET(':'); }
#line 456 "<stdout>"
yy46:
	++YYCURSOR;
#line 178 "cnokw.re"
	{ RET('('); }
#line 461 "<stdout>"
yy48:
	++YYCURSOR;
#line 179 "cnokw.re"
	{ RET(')'); }
#line 466 "<stdout>"
yy50:
	++YYCURSOR;
#line 180 "cnokw.re"
	{ RET('['); }
#line 471 "<stdout>"
yy52:
	++YYCURSOR;
#line 181 "cnokw.re"
	{ RET(']'); }
#line 476 "<stdout>"
yy54:
	++YYCURSOR;
#line 185 "cnokw.re"
	{ RET('~'); }
#line 481 "<stdout>"
yy56:
	++YYCURSOR;
#line 195 "cnokw.re"
	{ RET('?'); }
#line 486 "<stdout>"
yy58:
	++YYCURSOR;
	yych = *YYCURSOR;
	goto yy64;
yy59:
#line 198 "cnokw.re"
	{ goto std; }
#line 494 "<stdout>"
yy60:
	++YYCURSOR;
#line 201 "cnokw.re"
	{
		if(cursor == s->eof) RET(EOI);
		s->pos = cursor; s->line++;
		goto std;
	    }
#line 503 "<stdout>"
yy62:
	yych = *++YYCURSOR;
	goto yy10;
yy63:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy64:
	switch (yych) {
	case '\t':
	case '\v':
	case '\f':
	case ' ':	goto yy63;
	default:	goto yy59;
	}
yy65:
	++YYCURSOR;
#line 171 "cnokw.re"
	{ RET(NEQ); }
#line 523 "<stdout>"
yy67:
	++YYCURSOR;
#line 170 "cnokw.re"
	{ RET(EQL); }
#line 528 "<stdout>"
yy69:
	++YYCURSOR;
#line 167 "cnokw.re"
	{ RET(OROR); }
#line 533 "<stdout>"
yy71:
	++YYCURSOR;
#line 160 "cnokw.re"
	{ RET(OREQ); }
#line 538 "<stdout>"
yy73:
	++YYCURSOR;
#line 159 "cnokw.re"
	{ RET(XOREQ); }
#line 543 "<stdout>"
yy75:
	++YYCURSOR;
#line 166 "cnokw.re"
	{ RET(ANDAND); }
#line 548 "<stdout>"
yy77:
	++YYCURSOR;
#line 158 "cnokw.re"
	{ RET(ANDEQ); }
#line 553 "<stdout>"
yy79:
	++YYCURSOR;
#line 157 "cnokw.re"
	{ RET(MODEQ); }
#line 558 "<stdout>"
yy81:
	++YYCURSOR;
#line 155 "cnokw.re"
	{ RET(MULEQ); }
#line 563 "<stdout>"
yy83:
	++YYCURSOR;
#line 165 "cnokw.re"
	{ RET(DEREF); }
#line 568 "<stdout>"
yy85:
	++YYCURSOR;
#line 164 "cnokw.re"
	{ RET(DECR); }
#line 573 "<stdout>"
yy87:
	++YYCURSOR;
#line 154 "cnokw.re"
	{ RET(SUBEQ); }
#line 578 "<stdout>"
yy89:
	++YYCURSOR;
#line 163 "cnokw.re"
	{ RET(INCR); }
#line 583 "<stdout>"
yy91:
	++YYCURSOR;
#line 153 "cnokw.re"
	{ RET(ADDEQ); }
#line 588 "<stdout>"
yy93:
	++YYCURSOR;
#line 168 "cnokw.re"
	{ RET(LEQ); }
#line 593 "<stdout>"
yy95:
	++YYCURSOR;
	switch ((yych = *YYCURSOR)) {
	case '=':	goto yy97;
	default:	goto yy96;
	}
yy96:
#line 162 "cnokw.re"
	{ RET(LSHIFT); }
#line 603 "<stdout>"
yy97:
	++YYCURSOR;
#line 152 "cnokw.re"
	{ RET(LSHIFTEQ); }
#line 608 "<stdout>"
yy99:
	++YYCURSOR;
#line 169 "cnokw.re"
	{ RET(GEQ); }
#line 613 "<stdout>"
yy101:
	++YYCURSOR;
	switch ((yych = *YYCURSOR)) {
	case '=':	goto yy103;
	default:	goto yy102;
	}
yy102:
#line 161 "cnokw.re"
	{ RET(RSHIFT); }
#line 623 "<stdout>"
yy103:
	++YYCURSOR;
#line 151 "cnokw.re"
	{ RET(RSHIFTEQ); }
#line 628 "<stdout>"
yy105:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy106:
	switch (yych) {
	case '\n':	goto yy107;
	case '"':	goto yy109;
	case '\\':	goto yy108;
	default:	goto yy105;
	}
yy107:
	YYCURSOR = YYMARKER;
	switch (yyaccept) {
	case 0: 	goto yy7;
	case 1: 	goto yy10;
	case 2: 	goto yy12;
	case 3: 	goto yy119;
	}
yy108:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
	case '"':
	case '\'':
	case '?':
	case '\\':
	case 'a':
	case 'b':
	case 'f':
	case 'n':
	case 'r':
	case 't':
	case 'v':	goto yy105;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':	goto yy112;
	case 'x':	goto yy111;
	default:	goto yy107;
	}
yy109:
	++YYCURSOR;
#line 148 "cnokw.re"
	{ RET(SCON); }
#line 679 "<stdout>"
yy111:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *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 'a':
	case 'b':
	case 'c':
	case 'd':
	case 'e':
	case 'f':	goto yy114;
	default:	goto yy107;
	}
yy112:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
	case '\n':	goto yy107;
	case '"':	goto yy109;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':	goto yy112;
	case '\\':	goto yy108;
	default:	goto yy105;
	}
yy114:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
	case '\n':	goto yy107;
	case '"':	goto yy109;
	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 'a':
	case 'b':
	case 'c':
	case 'd':
	case 'e':
	case 'f':	goto yy114;
	case '\\':	goto yy108;
	default:	goto yy105;
	}
yy116:
	yych = *++YYCURSOR;
	switch (yych) {
	case '.':	goto yy125;
	default:	goto yy107;
	}
yy117:
	yyaccept = 3;
	YYMARKER = ++YYCURSOR;
	if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
	yych = *YYCURSOR;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy117;
	case 'E':
	case 'e':	goto yy120;
	case 'F':
	case 'L':
	case 'f':
	case 'l':	goto yy121;
	default:	goto yy119;
	}
yy119:
#line 145 "cnokw.re"
	{ RET(FCON); }
#line 792 "<stdout>"
yy120:
	yych = *++YYCURSOR;
	switch (yych) {
	case '+':
	case '-':	goto yy122;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy123;
	default:	goto yy107;
	}
yy121:
	yych = *++YYCURSOR;
	goto yy119;
yy122:
	yych = *++YYCURSOR;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy123;
	default:	goto yy107;
	}
yy123:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy123;
	case 'F':
	case 'L':
	case 'f':
	case 'l':	goto yy121;
	default:	goto yy119;
	}
yy125:
	++YYCURSOR;
#line 150 "cnokw.re"
	{ RET(ELLIPSIS); }
#line 853 "<stdout>"
yy127:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy128:
	switch (yych) {
	case '\n':	goto yy107;
	case '\'':	goto yy130;
	case '\\':	goto yy129;
	default:	goto yy127;
	}
yy129:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
	case '"':
	case '\'':
	case '?':
	case '\\':
	case 'a':
	case 'b':
	case 'f':
	case 'n':
	case 'r':
	case 't':
	case 'v':	goto yy127;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':	goto yy132;
	case 'x':	goto yy131;
	default:	goto yy107;
	}
yy130:
	yych = *++YYCURSOR;
	goto yy7;
yy131:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *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 'a':
	case 'b':
	case 'c':
	case 'd':
	case 'e':
	case 'f':	goto yy134;
	default:	goto yy107;
	}
yy132:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
	case '\n':	goto yy107;
	case '\'':	goto yy130;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':	goto yy132;
	case '\\':	goto yy129;
	default:	goto yy127;
	}
yy134:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
	case '\n':	goto yy107;
	case '\'':	goto yy130;
	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 'a':
	case 'b':
	case 'c':
	case 'd':
	case 'e':
	case 'f':	goto yy134;
	case '\\':	goto yy129;
	default:	goto yy127;
	}
yy136:
	yyaccept = 3;
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
	case 'E':
	case 'e':	goto yy147;
	default:	goto yy146;
	}
yy137:
	yyaccept = 0;
	YYMARKER = ++YYCURSOR;
	if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
	yych = *YYCURSOR;
yy138:
	switch (yych) {
	case '.':	goto yy136;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy137;
	case 'E':
	case 'e':	goto yy139;
	case 'L':
	case 'U':
	case 'l':
	case 'u':	goto yy140;
	default:	goto yy7;
	}
yy139:
	yych = *++YYCURSOR;
	switch (yych) {
	case '+':
	case '-':	goto yy142;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy143;
	default:	goto yy107;
	}
yy140:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
	case 'L':
	case 'U':
	case 'l':
	case 'u':	goto yy140;
	default:	goto yy7;
	}
yy142:
	yych = *++YYCURSOR;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy143;
	default:	goto yy107;
	}
yy143:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy143;
	case 'F':
	case 'L':
	case 'f':
	case 'l':	goto yy121;
	default:	goto yy119;
	}
yy145:
	yyaccept = 3;
	YYMARKER = ++YYCURSOR;
	if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
	yych = *YYCURSOR;
yy146:
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy145;
	case 'E':
	case 'e':	goto yy151;
	case 'F':
	case 'L':
	case 'f':
	case 'l':	goto yy121;
	default:	goto yy119;
	}
yy147:
	yych = *++YYCURSOR;
	switch (yych) {
	case '+':
	case '-':	goto yy148;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy149;
	default:	goto yy107;
	}
yy148:
	yych = *++YYCURSOR;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy149;
	default:	goto yy107;
	}
yy149:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy149;
	case 'F':
	case 'L':
	case 'f':
	case 'l':	goto yy121;
	default:	goto yy119;
	}
yy151:
	yych = *++YYCURSOR;
	switch (yych) {
	case '+':
	case '-':	goto yy152;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy153;
	default:	goto yy107;
	}
yy152:
	yych = *++YYCURSOR;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy153;
	default:	goto yy107;
	}
yy153:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy153;
	case 'F':
	case 'L':
	case 'f':
	case 'l':	goto yy121;
	default:	goto yy119;
	}
yy155:
	yyaccept = 0;
	YYMARKER = ++YYCURSOR;
	if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
	yych = *YYCURSOR;
yy156:
	switch (yych) {
	case '.':	goto yy136;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy155;
	case 'E':
	case 'e':	goto yy139;
	case 'L':
	case 'U':
	case 'l':
	case 'u':	goto yy162;
	default:	goto yy7;
	}
yy157:
	yych = *++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 'a':
	case 'b':
	case 'c':
	case 'd':
	case 'e':
	case 'f':	goto yy158;
	default:	goto yy107;
	}
yy158:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *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 'a':
	case 'b':
	case 'c':
	case 'd':
	case 'e':
	case 'f':	goto yy158;
	case 'L':
	case 'U':
	case 'l':
	case 'u':	goto yy160;
	default:	goto yy7;
	}
yy160:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
	case 'L':
	case 'U':
	case 'l':
	case 'u':	goto yy160;
	default:	goto yy7;
	}
yy162:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
	case 'L':
	case 'U':
	case 'l':
	case 'u':	goto yy162;
	default:	goto yy7;
	}
yy164:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy165:
	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 'G':
	case 'H':
	case 'I':
	case 'J':
	case 'K':
	case 'L':
	case 'M':
	case 'N':
	case 'O':
	case 'P':
	case 'Q':
	case 'R':
	case 'S':
	case 'T':
	case 'U':
	case 'V':
	case 'W':
	case 'X':
	case 'Y':
	case 'Z':
	case '_':
	case 'a':
	case 'b':
	case 'c':
	case 'd':
	case 'e':
	case 'f':
	case 'g':
	case 'h':
	case 'i':
	case 'j':
	case 'k':
	case 'l':
	case 'm':
	case 'n':
	case 'o':
	case 'p':
	case 'q':
	case 'r':
	case 's':
	case 't':
	case 'u':
	case 'v':
	case 'w':
	case 'x':
	case 'y':
	case 'z':	goto yy164;
	default:	goto yy5;
	}
yy166:
	++YYCURSOR;
#line 156 "cnokw.re"
	{ RET(DIVEQ); }
#line 1386 "<stdout>"
yy168:
	++YYCURSOR;
#line 136 "cnokw.re"
	{ goto comment; }
#line 1391 "<stdout>"
}
#line 212 "cnokw.re"


comment:

#line 1398 "<stdout>"
{
	YYCTYPE yych;
	if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
	yych = *YYCURSOR;
	switch (yych) {
	case '\n':	goto yy174;
	case '*':	goto yy172;
	default:	goto yy176;
	}
yy172:
	++YYCURSOR;
	switch ((yych = *YYCURSOR)) {
	case '/':	goto yy177;
	default:	goto yy173;
	}
yy173:
#line 223 "cnokw.re"
	{ goto comment; }
#line 1417 "<stdout>"
yy174:
	++YYCURSOR;
#line 218 "cnokw.re"
	{
		if(cursor == s->eof) RET(EOI);
		s->tok = s->pos = cursor; s->line++;
		goto comment;
	    }
#line 1426 "<stdout>"
yy176:
	yych = *++YYCURSOR;
	goto yy173;
yy177:
	++YYCURSOR;
#line 216 "cnokw.re"
	{ goto std; }
#line 1434 "<stdout>"
}
#line 224 "cnokw.re"

}

main(){
    Scanner in;
    int t;
    memset((char*) &in, 0, sizeof(in));
    in.fd = 0;
    while((t = scan(&in)) != EOI){
/*
	printf("%d\t%.*s\n", t, in.cur - in.tok, in.tok);
	printf("%d\n", t);
*/
    }
    close(in.fd);
}
