/* Generated by re2c */
#line 1 "real_world/cnokw.re"
// re2c $INPUT -o $OUTPUT 
#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 134 "real_world/cnokw.re"



#line 131 "real_world/cnokw.c"
{
	YYCTYPE yych;
	unsigned int yyaccept = 0;
	if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
	yych = *YYCURSOR;
	switch (yych) {
		case '\t':
		case '\v':
		case '\f':
		case ' ': goto yy3;
		case '\n': goto yy5;
		case '!': goto yy6;
		case '"': goto yy8;
		case '%': goto yy9;
		case '&': goto yy11;
		case '\'': goto yy13;
		case '(': goto yy14;
		case ')': goto yy15;
		case '*': goto yy16;
		case '+': goto yy18;
		case ',': goto yy20;
		case '-': goto yy21;
		case '.': goto yy23;
		case '/': goto yy25;
		case '0': goto yy27;
		case '1':
		case '2':
		case '3':
		case '4':
		case '5':
		case '6':
		case '7':
		case '8':
		case '9': goto yy29;
		case ':': goto yy31;
		case ';': goto yy32;
		case '<': goto yy33;
		case '=': goto yy35;
		case '>': goto yy37;
		case '?': goto yy39;
		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 yy40;
		case '[': goto yy42;
		case ']': goto yy43;
		case '^': goto yy44;
		case '{': goto yy46;
		case '|': goto yy47;
		case '}': goto yy49;
		case '~': goto yy50;
		default: goto yy1;
	}
yy1:
	++YYCURSOR;
yy2:
#line 209 "real_world/cnokw.re"
	{
		printf("unexpected character: %c\n", *s->tok);
		goto std;
	    }
#line 242 "real_world/cnokw.c"
yy3:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case '\t':
		case '\v':
		case '\f':
		case ' ': goto yy3;
		default: goto yy4;
	}
yy4:
#line 199 "real_world/cnokw.re"
	{ goto std; }
#line 257 "real_world/cnokw.c"
yy5:
	++YYCURSOR;
#line 202 "real_world/cnokw.re"
	{
		if(cursor == s->eof) RET(EOI);
		s->pos = cursor; s->line++;
		goto std;
	    }
#line 266 "real_world/cnokw.c"
yy6:
	yych = *++YYCURSOR;
	switch (yych) {
		case '=': goto yy51;
		default: goto yy7;
	}
yy7:
#line 185 "real_world/cnokw.re"
	{ RET('!'); }
#line 276 "real_world/cnokw.c"
yy8:
	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
		case '\n': goto yy2;
		default: goto yy53;
	}
yy9:
	yych = *++YYCURSOR;
	switch (yych) {
		case '=': goto yy57;
		default: goto yy10;
	}
yy10:
#line 191 "real_world/cnokw.re"
	{ RET('%'); }
#line 293 "real_world/cnokw.c"
yy11:
	yych = *++YYCURSOR;
	switch (yych) {
		case '&': goto yy58;
		case '=': goto yy59;
		default: goto yy12;
	}
yy12:
#line 184 "real_world/cnokw.re"
	{ RET('&'); }
#line 304 "real_world/cnokw.c"
yy13:
	yyaccept = 0;
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
		case '\n': goto yy2;
		default: goto yy61;
	}
yy14:
	++YYCURSOR;
#line 179 "real_world/cnokw.re"
	{ RET('('); }
#line 316 "real_world/cnokw.c"
yy15:
	++YYCURSOR;
#line 180 "real_world/cnokw.re"
	{ RET(')'); }
#line 321 "real_world/cnokw.c"
yy16:
	yych = *++YYCURSOR;
	switch (yych) {
		case '=': goto yy64;
		default: goto yy17;
	}
yy17:
#line 189 "real_world/cnokw.re"
	{ RET('*'); }
#line 331 "real_world/cnokw.c"
yy18:
	yych = *++YYCURSOR;
	switch (yych) {
		case '+': goto yy65;
		case '=': goto yy66;
		default: goto yy19;
	}
yy19:
#line 188 "real_world/cnokw.re"
	{ RET('+'); }
#line 342 "real_world/cnokw.c"
yy20:
	++YYCURSOR;
#line 176 "real_world/cnokw.re"
	{ RET(','); }
#line 347 "real_world/cnokw.c"
yy21:
	yych = *++YYCURSOR;
	switch (yych) {
		case '-': goto yy67;
		case '=': goto yy68;
		case '>': goto yy69;
		default: goto yy22;
	}
yy22:
#line 187 "real_world/cnokw.re"
	{ RET('-'); }
#line 359 "real_world/cnokw.c"
yy23:
	yyaccept = 1;
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
		case '.': goto yy70;
		case '0':
		case '1':
		case '2':
		case '3':
		case '4':
		case '5':
		case '6':
		case '7':
		case '8':
		case '9': goto yy71;
		default: goto yy24;
	}
yy24:
#line 183 "real_world/cnokw.re"
	{ RET('.'); }
#line 380 "real_world/cnokw.c"
yy25:
	yych = *++YYCURSOR;
	switch (yych) {
		case '*': goto yy73;
		case '=': goto yy74;
		default: goto yy26;
	}
yy26:
#line 190 "real_world/cnokw.re"
	{ RET('/'); }
#line 391 "real_world/cnokw.c"
yy27:
	yyaccept = 2;
	yych = *(YYMARKER = ++YYCURSOR);
	switch (yych) {
		case 'X':
		case 'x': goto yy77;
		default: goto yy30;
	}
yy28:
#line 143 "real_world/cnokw.re"
	{ RET(ICON); }
#line 403 "real_world/cnokw.c"
yy29:
	yyaccept = 2;
	YYMARKER = ++YYCURSOR;
	if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
	yych = *YYCURSOR;
yy30:
	switch (yych) {
		case '.': goto yy71;
		case '0':
		case '1':
		case '2':
		case '3':
		case '4':
		case '5':
		case '6':
		case '7':
		case '8':
		case '9': goto yy29;
		case 'E':
		case 'e': goto yy75;
		case 'L':
		case 'U':
		case 'l':
		case 'u': goto yy76;
		default: goto yy28;
	}
yy31:
	++YYCURSOR;
#line 177 "real_world/cnokw.re"
	{ RET(':'); }
#line 434 "real_world/cnokw.c"
yy32:
	++YYCURSOR;
#line 173 "real_world/cnokw.re"
	{ RET(';'); }
#line 439 "real_world/cnokw.c"
yy33:
	yych = *++YYCURSOR;
	switch (yych) {
		case '<': goto yy78;
		case '=': goto yy80;
		default: goto yy34;
	}
yy34:
#line 192 "real_world/cnokw.re"
	{ RET('<'); }
#line 450 "real_world/cnokw.c"
yy35:
	yych = *++YYCURSOR;
	switch (yych) {
		case '=': goto yy81;
		default: goto yy36;
	}
yy36:
#line 178 "real_world/cnokw.re"
	{ RET('='); }
#line 460 "real_world/cnokw.c"
yy37:
	yych = *++YYCURSOR;
	switch (yych) {
		case '=': goto yy82;
		case '>': goto yy83;
		default: goto yy38;
	}
yy38:
#line 193 "real_world/cnokw.re"
	{ RET('>'); }
#line 471 "real_world/cnokw.c"
yy39:
	++YYCURSOR;
#line 196 "real_world/cnokw.re"
	{ RET('?'); }
#line 476 "real_world/cnokw.c"
yy40:
	++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 '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 yy40;
		default: goto yy41;
	}
yy41:
#line 139 "real_world/cnokw.re"
	{ RET(ID); }
#line 550 "real_world/cnokw.c"
yy42:
	++YYCURSOR;
#line 181 "real_world/cnokw.re"
	{ RET('['); }
#line 555 "real_world/cnokw.c"
yy43:
	++YYCURSOR;
#line 182 "real_world/cnokw.re"
	{ RET(']'); }
#line 560 "real_world/cnokw.c"
yy44:
	yych = *++YYCURSOR;
	switch (yych) {
		case '=': goto yy85;
		default: goto yy45;
	}
yy45:
#line 194 "real_world/cnokw.re"
	{ RET('^'); }
#line 570 "real_world/cnokw.c"
yy46:
	++YYCURSOR;
#line 174 "real_world/cnokw.re"
	{ RET('{'); }
#line 575 "real_world/cnokw.c"
yy47:
	yych = *++YYCURSOR;
	switch (yych) {
		case '=': goto yy86;
		case '|': goto yy87;
		default: goto yy48;
	}
yy48:
#line 195 "real_world/cnokw.re"
	{ RET('|'); }
#line 586 "real_world/cnokw.c"
yy49:
	++YYCURSOR;
#line 175 "real_world/cnokw.re"
	{ RET('}'); }
#line 591 "real_world/cnokw.c"
yy50:
	++YYCURSOR;
#line 186 "real_world/cnokw.re"
	{ RET('~'); }
#line 596 "real_world/cnokw.c"
yy51:
	++YYCURSOR;
#line 172 "real_world/cnokw.re"
	{ RET(NEQ); }
#line 601 "real_world/cnokw.c"
yy52:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy53:
	switch (yych) {
		case '\n': goto yy54;
		case '"': goto yy55;
		case '\\': goto yy56;
		default: goto yy52;
	}
yy54:
	YYCURSOR = YYMARKER;
	switch (yyaccept) {
		case 0: goto yy2;
		case 1: goto yy24;
		case 2: goto yy28;
		default: goto yy72;
	}
yy55:
	++YYCURSOR;
#line 149 "real_world/cnokw.re"
	{ RET(SCON); }
#line 625 "real_world/cnokw.c"
yy56:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case '"':
		case '\'':
		case '0':
		case '1':
		case '2':
		case '3':
		case '4':
		case '5':
		case '6':
		case '7':
		case '?':
		case '\\':
		case 'a':
		case 'b':
		case 'f':
		case 'n':
		case 'r':
		case 't':
		case 'v': goto yy52;
		case 'x': goto yy88;
		default: goto yy54;
	}
yy57:
	++YYCURSOR;
#line 158 "real_world/cnokw.re"
	{ RET(MODEQ); }
#line 657 "real_world/cnokw.c"
yy58:
	++YYCURSOR;
#line 167 "real_world/cnokw.re"
	{ RET(ANDAND); }
#line 662 "real_world/cnokw.c"
yy59:
	++YYCURSOR;
#line 159 "real_world/cnokw.re"
	{ RET(ANDEQ); }
#line 667 "real_world/cnokw.c"
yy60:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
yy61:
	switch (yych) {
		case '\n': goto yy54;
		case '\'': goto yy62;
		case '\\': goto yy63;
		default: goto yy60;
	}
yy62:
	++YYCURSOR;
	goto yy28;
yy63:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case '"':
		case '\'':
		case '0':
		case '1':
		case '2':
		case '3':
		case '4':
		case '5':
		case '6':
		case '7':
		case '?':
		case '\\':
		case 'a':
		case 'b':
		case 'f':
		case 'n':
		case 'r':
		case 't':
		case 'v': goto yy60;
		case 'x': goto yy89;
		default: goto yy54;
	}
yy64:
	++YYCURSOR;
#line 156 "real_world/cnokw.re"
	{ RET(MULEQ); }
#line 713 "real_world/cnokw.c"
yy65:
	++YYCURSOR;
#line 164 "real_world/cnokw.re"
	{ RET(INCR); }
#line 718 "real_world/cnokw.c"
yy66:
	++YYCURSOR;
#line 154 "real_world/cnokw.re"
	{ RET(ADDEQ); }
#line 723 "real_world/cnokw.c"
yy67:
	++YYCURSOR;
#line 165 "real_world/cnokw.re"
	{ RET(DECR); }
#line 728 "real_world/cnokw.c"
yy68:
	++YYCURSOR;
#line 155 "real_world/cnokw.re"
	{ RET(SUBEQ); }
#line 733 "real_world/cnokw.c"
yy69:
	++YYCURSOR;
#line 166 "real_world/cnokw.re"
	{ RET(DEREF); }
#line 738 "real_world/cnokw.c"
yy70:
	yych = *++YYCURSOR;
	switch (yych) {
		case '.': goto yy90;
		default: goto yy54;
	}
yy71:
	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 yy71;
		case 'E':
		case 'e': goto yy75;
		case 'F':
		case 'L':
		case 'f':
		case 'l': goto yy91;
		default: goto yy72;
	}
yy72:
#line 146 "real_world/cnokw.re"
	{ RET(FCON); }
#line 772 "real_world/cnokw.c"
yy73:
	++YYCURSOR;
#line 137 "real_world/cnokw.re"
	{ goto comment; }
#line 777 "real_world/cnokw.c"
yy74:
	++YYCURSOR;
#line 157 "real_world/cnokw.re"
	{ RET(DIVEQ); }
#line 782 "real_world/cnokw.c"
yy75:
	yych = *++YYCURSOR;
	switch (yych) {
		case '+':
		case '-': goto yy92;
		case '0':
		case '1':
		case '2':
		case '3':
		case '4':
		case '5':
		case '6':
		case '7':
		case '8':
		case '9': goto yy93;
		default: goto yy54;
	}
yy76:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'L':
		case 'U':
		case 'l':
		case 'u': goto yy76;
		default: goto yy28;
	}
yy77:
	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 yy94;
		default: goto yy54;
	}
yy78:
	yych = *++YYCURSOR;
	switch (yych) {
		case '=': goto yy95;
		default: goto yy79;
	}
yy79:
#line 163 "real_world/cnokw.re"
	{ RET(LSHIFT); }
#line 847 "real_world/cnokw.c"
yy80:
	++YYCURSOR;
#line 169 "real_world/cnokw.re"
	{ RET(LEQ); }
#line 852 "real_world/cnokw.c"
yy81:
	++YYCURSOR;
#line 171 "real_world/cnokw.re"
	{ RET(EQL); }
#line 857 "real_world/cnokw.c"
yy82:
	++YYCURSOR;
#line 170 "real_world/cnokw.re"
	{ RET(GEQ); }
#line 862 "real_world/cnokw.c"
yy83:
	yych = *++YYCURSOR;
	switch (yych) {
		case '=': goto yy96;
		default: goto yy84;
	}
yy84:
#line 162 "real_world/cnokw.re"
	{ RET(RSHIFT); }
#line 872 "real_world/cnokw.c"
yy85:
	++YYCURSOR;
#line 160 "real_world/cnokw.re"
	{ RET(XOREQ); }
#line 877 "real_world/cnokw.c"
yy86:
	++YYCURSOR;
#line 161 "real_world/cnokw.re"
	{ RET(OREQ); }
#line 882 "real_world/cnokw.c"
yy87:
	++YYCURSOR;
#line 168 "real_world/cnokw.re"
	{ RET(OROR); }
#line 887 "real_world/cnokw.c"
yy88:
	++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 yy52;
		default: goto yy54;
	}
yy89:
	++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 yy60;
		default: goto yy54;
	}
yy90:
	++YYCURSOR;
#line 151 "real_world/cnokw.re"
	{ RET(ELLIPSIS); }
#line 950 "real_world/cnokw.c"
yy91:
	++YYCURSOR;
	goto yy72;
yy92:
	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 yy93;
		default: goto yy54;
	}
yy93:
	++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 yy93;
		case 'F':
		case 'L':
		case 'f':
		case 'l': goto yy91;
		default: goto yy72;
	}
yy94:
	++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 yy94;
		case 'L':
		case 'U':
		case 'l':
		case 'u': goto yy76;
		default: goto yy28;
	}
yy95:
	++YYCURSOR;
#line 153 "real_world/cnokw.re"
	{ RET(LSHIFTEQ); }
#line 1027 "real_world/cnokw.c"
yy96:
	++YYCURSOR;
#line 152 "real_world/cnokw.re"
	{ RET(RSHIFTEQ); }
#line 1032 "real_world/cnokw.c"
}
#line 213 "real_world/cnokw.re"


comment:

#line 1039 "real_world/cnokw.c"
{
	YYCTYPE yych;
	if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
	yych = *YYCURSOR;
	switch (yych) {
		case '\n': goto yy100;
		case '*': goto yy101;
		default: goto yy98;
	}
yy98:
	++YYCURSOR;
yy99:
#line 224 "real_world/cnokw.re"
	{ goto comment; }
#line 1054 "real_world/cnokw.c"
yy100:
	++YYCURSOR;
#line 219 "real_world/cnokw.re"
	{
		if(cursor == s->eof) RET(EOI);
		s->tok = s->pos = cursor; s->line++;
		goto comment;
	    }
#line 1063 "real_world/cnokw.c"
yy101:
	yych = *++YYCURSOR;
	switch (yych) {
		case '/': goto yy102;
		default: goto yy99;
	}
yy102:
	++YYCURSOR;
#line 217 "real_world/cnokw.re"
	{ goto std; }
#line 1074 "real_world/cnokw.c"
}
#line 225 "real_world/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);
}
