EXTRA_DIST = $(man_MANS) README parser.y scanner.re makerpm.in re2c.spec.in \
README.in y.tab.h \
- examples/basemmap.c examples/c.re examples/cmmap.re \
- examples/cnokw.re examples/cunroll.re examples/modula.re \
- examples/sample.re examples/simple.re examples/rexx/README \
- examples/rexx/rexx.l examples/rexx/scanio.c doc/loplas.ps \
- doc/sample.bib
+ doc examples test
+
+dist-hook:
+ rm -rf `find $(distdir)/doc -name CVS`
+ rm -rf `find $(distdir)/examples -name CVS`
+ rm -rf `find $(distdir)/test -name CVS`
+
rpm-files: $(bin_PROGRAMS) $(EXTRA_DIST)
.version:
echo $(PACKAGE_VERSION) > .version
+
+TESTS = test/run_tests.sh
+
AC_DEFINE([HAVE_ULONG], [1], [Define to 1 if you have ulong type definition])
])
-AC_CONFIG_FILES([Makefile README makerpm re2c.1 re2c.spec])
-AC_OUTPUT_COMMANDS([chmod +x makerpm])
+AC_CONFIG_FILES([\
+Makefile \
+README \
+makerpm \
+re2c.1 \
+re2c.spec \
+test/run_tests.sh \
+])
+AC_OUTPUT_COMMANDS([chmod +x makerpm test/run_tests.sh])
AC_OUTPUT
--- /dev/null
+run_tests.sh
--- /dev/null
+
+#line 1 "c.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 "c.re"
+
+
+
+#line 7 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy0;
+yy1: ++YYCURSOR;
+yy0:
+ if((YYLIMIT - YYCURSOR) < 9) YYFILL(9);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x09: case 0x0B:
+ case 0x0C: case ' ': goto yy73;
+ case 0x0A: goto yy75;
+ case '!': goto yy49;
+ case '"': goto yy28;
+ case '%': goto yy39;
+ case '&': goto yy41;
+ case '\'': goto yy24;
+ case '(': goto yy61;
+ case ')': goto yy63;
+ case '*': goto yy37;
+ case '+': goto yy33;
+ case ',': goto yy57;
+ case '-': goto yy35;
+ case '.': goto yy26;
+ case '/': goto yy2;
+ case '0': goto yy21;
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy23;
+ case ':': goto yy59;
+ case ';': goto yy51;
+ case '<': goto yy31;
+ case '=': goto yy47;
+ case '>': goto yy29;
+ case '?': goto yy71;
+ 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 'h': case 'j':
+ case 'k': case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q': case 'x':
+ case 'y':
+ case 'z': goto yy20;
+ case '[': goto yy65;
+ case ']': goto yy67;
+ case '^': goto yy43;
+ case 'a': goto yy4;
+ case 'b': goto yy6;
+ case 'c': goto yy7;
+ case 'd': goto yy8;
+ case 'e': goto yy9;
+ case 'f': goto yy10;
+ case 'g': goto yy11;
+ case 'i': goto yy12;
+ case 'l': goto yy13;
+ case 'r': goto yy14;
+ case 's': goto yy15;
+ case 't': goto yy16;
+ case 'u': goto yy17;
+ case 'v': goto yy18;
+ case 'w': goto yy19;
+ case '{': goto yy53;
+ case '|': goto yy45;
+ case '}': goto yy55;
+ case '~': goto yy69;
+ default: goto yy77;
+ }
+yy2: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '*': goto yy341;
+ case '=': goto yy339;
+ default: goto yy3;
+ }
+yy3:
+#line 222 "c.re"
+{ RET('/'); }
+#line 115 "<stdout>"
+yy4: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case 'u': goto yy335;
+ default: goto yy180;
+ }
+yy5:
+#line 171 "c.re"
+{ RET(ID); }
+#line 124 "<stdout>"
+yy6: yych = *++YYCURSOR;
+ switch(yych){
+ case 'r': goto yy330;
+ default: goto yy180;
+ }
+yy7: yych = *++YYCURSOR;
+ switch(yych){
+ case 'a': goto yy311;
+ case 'h': goto yy312;
+ case 'o': goto yy313;
+ default: goto yy180;
+ }
+yy8: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy297;
+ case 'o': goto yy298;
+ default: goto yy180;
+ }
+yy9: yych = *++YYCURSOR;
+ switch(yych){
+ case 'l': goto yy283;
+ case 'n': goto yy284;
+ case 'x': goto yy285;
+ default: goto yy180;
+ }
+yy10: yych = *++YYCURSOR;
+ switch(yych){
+ case 'l': goto yy275;
+ case 'o': goto yy276;
+ default: goto yy180;
+ }
+yy11: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy271;
+ default: goto yy180;
+ }
+yy12: yych = *++YYCURSOR;
+ switch(yych){
+ case 'f': goto yy266;
+ case 'n': goto yy268;
+ default: goto yy180;
+ }
+yy13: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy262;
+ default: goto yy180;
+ }
+yy14: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy249;
+ default: goto yy180;
+ }
+yy15: yych = *++YYCURSOR;
+ switch(yych){
+ case 'h': goto yy216;
+ case 'i': goto yy217;
+ case 't': goto yy218;
+ case 'w': goto yy219;
+ default: goto yy180;
+ }
+yy16: yych = *++YYCURSOR;
+ switch(yych){
+ case 'y': goto yy209;
+ default: goto yy180;
+ }
+yy17: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy197;
+ default: goto yy180;
+ }
+yy18: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy186;
+ default: goto yy180;
+ }
+yy19: yych = *++YYCURSOR;
+ switch(yych){
+ case 'h': goto yy181;
+ default: goto yy180;
+ }
+yy20: yych = *++YYCURSOR;
+ goto yy180;
+yy21: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 'L': case 'U': case 'l': case 'u': goto yy155;
+ case 'X': case 'x': goto yy172;
+ default: goto yy171;
+ }
+yy22:
+#line 175 "c.re"
+{ RET(ICON); }
+#line 217 "<stdout>"
+yy23: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy153;
+yy24: yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 0x0A: goto yy25;
+ default: goto yy143;
+ }
+yy25:
+#line 241 "c.re"
+{
+ printf("unexpected character: %c\n", *s->tok);
+ goto std;
+ }
+#line 233 "<stdout>"
+yy26: yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case '.': goto yy131;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy132;
+ default: goto yy27;
+ }
+yy27:
+#line 215 "c.re"
+{ RET('.'); }
+#line 253 "<stdout>"
+yy28: yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 0x0A: goto yy25;
+ default: goto yy121;
+ }
+yy29: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy114;
+ case '>': goto yy116;
+ default: goto yy30;
+ }
+yy30:
+#line 225 "c.re"
+{ RET('>'); }
+#line 269 "<stdout>"
+yy31: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '<': goto yy110;
+ case '=': goto yy108;
+ default: goto yy32;
+ }
+yy32:
+#line 224 "c.re"
+{ RET('<'); }
+#line 279 "<stdout>"
+yy33: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '+': goto yy104;
+ case '=': goto yy106;
+ default: goto yy34;
+ }
+yy34:
+#line 220 "c.re"
+{ RET('+'); }
+#line 289 "<stdout>"
+yy35: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '-': goto yy100;
+ case '=': goto yy102;
+ case '>': goto yy98;
+ default: goto yy36;
+ }
+yy36:
+#line 219 "c.re"
+{ RET('-'); }
+#line 300 "<stdout>"
+yy37: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy96;
+ default: goto yy38;
+ }
+yy38:
+#line 221 "c.re"
+{ RET('*'); }
+#line 309 "<stdout>"
+yy39: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy94;
+ default: goto yy40;
+ }
+yy40:
+#line 223 "c.re"
+{ RET('%'); }
+#line 318 "<stdout>"
+yy41: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '&': goto yy90;
+ case '=': goto yy92;
+ default: goto yy42;
+ }
+yy42:
+#line 216 "c.re"
+{ RET('&'); }
+#line 328 "<stdout>"
+yy43: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy88;
+ default: goto yy44;
+ }
+yy44:
+#line 226 "c.re"
+{ RET('^'); }
+#line 337 "<stdout>"
+yy45: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy86;
+ case '|': goto yy84;
+ default: goto yy46;
+ }
+yy46:
+#line 227 "c.re"
+{ RET('|'); }
+#line 347 "<stdout>"
+yy47: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy82;
+ default: goto yy48;
+ }
+yy48:
+#line 210 "c.re"
+{ RET('='); }
+#line 356 "<stdout>"
+yy49: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy80;
+ default: goto yy50;
+ }
+yy50:
+#line 217 "c.re"
+{ RET('!'); }
+#line 365 "<stdout>"
+yy51: ++YYCURSOR;
+ goto yy52;
+yy52:
+#line 205 "c.re"
+{ RET(';'); }
+#line 371 "<stdout>"
+yy53: ++YYCURSOR;
+ goto yy54;
+yy54:
+#line 206 "c.re"
+{ RET('{'); }
+#line 377 "<stdout>"
+yy55: ++YYCURSOR;
+ goto yy56;
+yy56:
+#line 207 "c.re"
+{ RET('}'); }
+#line 383 "<stdout>"
+yy57: ++YYCURSOR;
+ goto yy58;
+yy58:
+#line 208 "c.re"
+{ RET(','); }
+#line 389 "<stdout>"
+yy59: ++YYCURSOR;
+ goto yy60;
+yy60:
+#line 209 "c.re"
+{ RET(':'); }
+#line 395 "<stdout>"
+yy61: ++YYCURSOR;
+ goto yy62;
+yy62:
+#line 211 "c.re"
+{ RET('('); }
+#line 401 "<stdout>"
+yy63: ++YYCURSOR;
+ goto yy64;
+yy64:
+#line 212 "c.re"
+{ RET(')'); }
+#line 407 "<stdout>"
+yy65: ++YYCURSOR;
+ goto yy66;
+yy66:
+#line 213 "c.re"
+{ RET('['); }
+#line 413 "<stdout>"
+yy67: ++YYCURSOR;
+ goto yy68;
+yy68:
+#line 214 "c.re"
+{ RET(']'); }
+#line 419 "<stdout>"
+yy69: ++YYCURSOR;
+ goto yy70;
+yy70:
+#line 218 "c.re"
+{ RET('~'); }
+#line 425 "<stdout>"
+yy71: ++YYCURSOR;
+ goto yy72;
+yy72:
+#line 228 "c.re"
+{ RET('?'); }
+#line 431 "<stdout>"
+yy73: ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy79;
+yy74:
+#line 231 "c.re"
+{ goto std; }
+#line 437 "<stdout>"
+yy75: ++YYCURSOR;
+ goto yy76;
+yy76:
+#line 234 "c.re"
+{
+ if(cursor == s->eof) RET(EOI);
+ s->pos = cursor; s->line++;
+ goto std;
+ }
+#line 447 "<stdout>"
+yy77: yych = *++YYCURSOR;
+ goto yy25;
+yy78: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy79;
+yy79: switch(yych){
+ case 0x09: case 0x0B:
+ case 0x0C: case ' ': goto yy78;
+ default: goto yy74;
+ }
+yy80: ++YYCURSOR;
+ goto yy81;
+yy81:
+#line 204 "c.re"
+{ RET(NEQ); }
+#line 465 "<stdout>"
+yy82: ++YYCURSOR;
+ goto yy83;
+yy83:
+#line 203 "c.re"
+{ RET(EQL); }
+#line 471 "<stdout>"
+yy84: ++YYCURSOR;
+ goto yy85;
+yy85:
+#line 200 "c.re"
+{ RET(OROR); }
+#line 477 "<stdout>"
+yy86: ++YYCURSOR;
+ goto yy87;
+yy87:
+#line 193 "c.re"
+{ RET(OREQ); }
+#line 483 "<stdout>"
+yy88: ++YYCURSOR;
+ goto yy89;
+yy89:
+#line 192 "c.re"
+{ RET(XOREQ); }
+#line 489 "<stdout>"
+yy90: ++YYCURSOR;
+ goto yy91;
+yy91:
+#line 199 "c.re"
+{ RET(ANDAND); }
+#line 495 "<stdout>"
+yy92: ++YYCURSOR;
+ goto yy93;
+yy93:
+#line 191 "c.re"
+{ RET(ANDEQ); }
+#line 501 "<stdout>"
+yy94: ++YYCURSOR;
+ goto yy95;
+yy95:
+#line 190 "c.re"
+{ RET(MODEQ); }
+#line 507 "<stdout>"
+yy96: ++YYCURSOR;
+ goto yy97;
+yy97:
+#line 188 "c.re"
+{ RET(MULEQ); }
+#line 513 "<stdout>"
+yy98: ++YYCURSOR;
+ goto yy99;
+yy99:
+#line 198 "c.re"
+{ RET(DEREF); }
+#line 519 "<stdout>"
+yy100: ++YYCURSOR;
+ goto yy101;
+yy101:
+#line 197 "c.re"
+{ RET(DECR); }
+#line 525 "<stdout>"
+yy102: ++YYCURSOR;
+ goto yy103;
+yy103:
+#line 187 "c.re"
+{ RET(SUBEQ); }
+#line 531 "<stdout>"
+yy104: ++YYCURSOR;
+ goto yy105;
+yy105:
+#line 196 "c.re"
+{ RET(INCR); }
+#line 537 "<stdout>"
+yy106: ++YYCURSOR;
+ goto yy107;
+yy107:
+#line 186 "c.re"
+{ RET(ADDEQ); }
+#line 543 "<stdout>"
+yy108: ++YYCURSOR;
+ goto yy109;
+yy109:
+#line 201 "c.re"
+{ RET(LEQ); }
+#line 549 "<stdout>"
+yy110: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy112;
+ default: goto yy111;
+ }
+yy111:
+#line 195 "c.re"
+{ RET(LSHIFT); }
+#line 558 "<stdout>"
+yy112: ++YYCURSOR;
+ goto yy113;
+yy113:
+#line 185 "c.re"
+{ RET(LSHIFTEQ); }
+#line 564 "<stdout>"
+yy114: ++YYCURSOR;
+ goto yy115;
+yy115:
+#line 202 "c.re"
+{ RET(GEQ); }
+#line 570 "<stdout>"
+yy116: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy118;
+ default: goto yy117;
+ }
+yy117:
+#line 194 "c.re"
+{ RET(RSHIFT); }
+#line 579 "<stdout>"
+yy118: ++YYCURSOR;
+ goto yy119;
+yy119:
+#line 184 "c.re"
+{ RET(RSHIFTEQ); }
+#line 585 "<stdout>"
+yy120: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy121;
+yy121: switch(yych){
+ case 0x0A: goto yy122;
+ case '"': goto yy124;
+ case '\\': goto yy123;
+ default: goto yy120;
+ }
+yy122: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy22;
+ case 3: goto yy134;
+ case 2: goto yy27;
+ case 1: goto yy25;
+ }
+yy123: ++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 yy120;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7': goto yy127;
+ case 'x': goto yy126;
+ default: goto yy122;
+ }
+yy124: ++YYCURSOR;
+ goto yy125;
+yy125:
+#line 181 "c.re"
+{ RET(SCON); }
+#line 627 "<stdout>"
+yy126: ++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 yy129;
+ default: goto yy122;
+ }
+yy127: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy128;
+yy128: switch(yych){
+ case 0x0A: goto yy122;
+ case '"': goto yy124;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7': goto yy127;
+ case '\\': goto yy123;
+ default: goto yy120;
+ }
+yy129: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy130;
+yy130: switch(yych){
+ case 0x0A: goto yy122;
+ case '"': goto yy124;
+ 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 yy129;
+ case '\\': goto yy123;
+ default: goto yy120;
+ }
+yy131: yych = *++YYCURSOR;
+ switch(yych){
+ case '.': goto yy140;
+ default: goto yy122;
+ }
+yy132: yyaccept = 3;
+ YYMARKER = ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy133;
+yy133: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy132;
+ case 'E': case 'e': goto yy135;
+ case 'F': case 'L': case 'f': case 'l': goto yy136;
+ default: goto yy134;
+ }
+yy134:
+#line 178 "c.re"
+{ RET(FCON); }
+#line 733 "<stdout>"
+yy135: yych = *++YYCURSOR;
+ switch(yych){
+ case '+': case '-': goto yy137;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy138;
+ default: goto yy122;
+ }
+yy136: yych = *++YYCURSOR;
+ goto yy134;
+yy137: 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 yy138;
+ default: goto yy122;
+ }
+yy138: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy139;
+yy139: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy138;
+ case 'F': case 'L': case 'f': case 'l': goto yy136;
+ default: goto yy134;
+ }
+yy140: ++YYCURSOR;
+ goto yy141;
+yy141:
+#line 183 "c.re"
+{ RET(ELLIPSIS); }
+#line 789 "<stdout>"
+yy142: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy143;
+yy143: switch(yych){
+ case 0x0A: goto yy122;
+ case '\'': goto yy145;
+ case '\\': goto yy144;
+ default: goto yy142;
+ }
+yy144: ++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 yy142;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7': goto yy147;
+ case 'x': goto yy146;
+ default: goto yy122;
+ }
+yy145: yych = *++YYCURSOR;
+ goto yy22;
+yy146: ++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 yy149;
+ default: goto yy122;
+ }
+yy147: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy148;
+yy148: switch(yych){
+ case 0x0A: goto yy122;
+ case '\'': goto yy145;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7': goto yy147;
+ case '\\': goto yy144;
+ default: goto yy142;
+ }
+yy149: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy150;
+yy150: switch(yych){
+ case 0x0A: goto yy122;
+ case '\'': goto yy145;
+ 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 yy149;
+ case '\\': goto yy144;
+ default: goto yy142;
+ }
+yy151: yyaccept = 3;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 'E': case 'e': goto yy162;
+ default: goto yy161;
+ }
+yy152: yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ goto yy153;
+yy153: switch(yych){
+ case '.': goto yy151;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy152;
+ case 'E': case 'e': goto yy154;
+ case 'L': case 'U': case 'l': case 'u': goto yy155;
+ default: goto yy22;
+ }
+yy154: yych = *++YYCURSOR;
+ switch(yych){
+ case '+': case '-': goto yy157;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy158;
+ default: goto yy122;
+ }
+yy155: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy156;
+yy156: switch(yych){
+ case 'L': case 'U': case 'l': case 'u': goto yy155;
+ default: goto yy22;
+ }
+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': goto yy158;
+ default: goto yy122;
+ }
+yy158: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy159;
+yy159: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy158;
+ case 'F': case 'L': case 'f': case 'l': goto yy136;
+ default: goto yy134;
+ }
+yy160: yyaccept = 3;
+ YYMARKER = ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy161;
+yy161: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy160;
+ case 'E': case 'e': goto yy166;
+ case 'F': case 'L': case 'f': case 'l': goto yy136;
+ default: goto yy134;
+ }
+yy162: yych = *++YYCURSOR;
+ switch(yych){
+ case '+': case '-': goto yy163;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy164;
+ default: goto yy122;
+ }
+yy163: 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 yy164;
+ default: goto yy122;
+ }
+yy164: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy165;
+yy165: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy164;
+ case 'F': case 'L': case 'f': case 'l': goto yy136;
+ default: goto yy134;
+ }
+yy166: yych = *++YYCURSOR;
+ switch(yych){
+ case '+': case '-': goto yy167;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy168;
+ default: goto yy122;
+ }
+yy167: 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 yy168;
+ default: goto yy122;
+ }
+yy168: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy169;
+yy169: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy168;
+ case 'F': case 'L': case 'f': case 'l': goto yy136;
+ default: goto yy134;
+ }
+yy170: yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+ yych = *YYCURSOR;
+ goto yy171;
+yy171: switch(yych){
+ case '.': goto yy151;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy170;
+ case 'E': case 'e': goto yy154;
+ case 'L': case 'U': case 'l': case 'u': goto yy177;
+ default: goto yy22;
+ }
+yy172: 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 yy173;
+ default: goto yy122;
+ }
+yy173: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy174;
+yy174: 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 yy173;
+ case 'L': case 'U': case 'l': case 'u': goto yy175;
+ default: goto yy22;
+ }
+yy175: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy176;
+yy176: switch(yych){
+ case 'L': case 'U': case 'l': case 'u': goto yy175;
+ default: goto yy22;
+ }
+yy177: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy178;
+yy178: switch(yych){
+ case 'L': case 'U': case 'l': case 'u': goto yy177;
+ default: goto yy22;
+ }
+yy179: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy180;
+yy180: 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 yy179;
+ default: goto yy5;
+ }
+yy181: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy182;
+ default: goto yy180;
+ }
+yy182: yych = *++YYCURSOR;
+ switch(yych){
+ case 'l': goto yy183;
+ default: goto yy180;
+ }
+yy183: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy184;
+ default: goto yy180;
+ }
+yy184: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy185;
+ }
+yy185:
+#line 169 "c.re"
+{ RET(WHILE); }
+#line 1340 "<stdout>"
+yy186: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy187;
+ case 'l': goto yy188;
+ default: goto yy180;
+ }
+yy187: yych = *++YYCURSOR;
+ switch(yych){
+ case 'd': goto yy195;
+ default: goto yy180;
+ }
+yy188: yych = *++YYCURSOR;
+ switch(yych){
+ case 'a': goto yy189;
+ default: goto yy180;
+ }
+yy189: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy190;
+ default: goto yy180;
+ }
+yy190: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy191;
+ default: goto yy180;
+ }
+yy191: yych = *++YYCURSOR;
+ switch(yych){
+ case 'l': goto yy192;
+ default: goto yy180;
+ }
+yy192: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy193;
+ default: goto yy180;
+ }
+yy193: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy194;
+ }
+yy194:
+#line 168 "c.re"
+{ RET(VOLATILE); }
+#line 1444 "<stdout>"
+yy195: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy196;
+ }
+yy196:
+#line 167 "c.re"
+{ RET(VOID); }
+#line 1512 "<stdout>"
+yy197: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy198;
+ case 's': goto yy199;
+ default: goto yy180;
+ }
+yy198: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy206;
+ default: goto yy180;
+ }
+yy199: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy200;
+ default: goto yy180;
+ }
+yy200: yych = *++YYCURSOR;
+ switch(yych){
+ case 'g': goto yy201;
+ default: goto yy180;
+ }
+yy201: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy202;
+ default: goto yy180;
+ }
+yy202: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy203;
+ default: goto yy180;
+ }
+yy203: yych = *++YYCURSOR;
+ switch(yych){
+ case 'd': goto yy204;
+ default: goto yy180;
+ }
+yy204: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy205;
+ }
+yy205:
+#line 166 "c.re"
+{ RET(UNSIGNED); }
+#line 1616 "<stdout>"
+yy206: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy207;
+ default: goto yy180;
+ }
+yy207: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy208;
+ }
+yy208:
+#line 165 "c.re"
+{ RET(UNION); }
+#line 1689 "<stdout>"
+yy209: yych = *++YYCURSOR;
+ switch(yych){
+ case 'p': goto yy210;
+ default: goto yy180;
+ }
+yy210: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy211;
+ default: goto yy180;
+ }
+yy211: yych = *++YYCURSOR;
+ switch(yych){
+ case 'd': goto yy212;
+ default: goto yy180;
+ }
+yy212: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy213;
+ default: goto yy180;
+ }
+yy213: yych = *++YYCURSOR;
+ switch(yych){
+ case 'f': goto yy214;
+ default: goto yy180;
+ }
+yy214: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy215;
+ }
+yy215:
+#line 164 "c.re"
+{ RET(TYPEDEF); }
+#line 1782 "<stdout>"
+yy216: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy245;
+ default: goto yy180;
+ }
+yy217: yych = *++YYCURSOR;
+ switch(yych){
+ case 'g': goto yy235;
+ case 'z': goto yy236;
+ default: goto yy180;
+ }
+yy218: yych = *++YYCURSOR;
+ switch(yych){
+ case 'a': goto yy225;
+ case 'r': goto yy226;
+ default: goto yy180;
+ }
+yy219: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy220;
+ default: goto yy180;
+ }
+yy220: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy221;
+ default: goto yy180;
+ }
+yy221: yych = *++YYCURSOR;
+ switch(yych){
+ case 'c': goto yy222;
+ default: goto yy180;
+ }
+yy222: yych = *++YYCURSOR;
+ switch(yych){
+ case 'h': goto yy223;
+ default: goto yy180;
+ }
+yy223: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy224;
+ }
+yy224:
+#line 163 "c.re"
+{ RET(SWITCH); }
+#line 1887 "<stdout>"
+yy225: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy231;
+ default: goto yy180;
+ }
+yy226: yych = *++YYCURSOR;
+ switch(yych){
+ case 'u': goto yy227;
+ default: goto yy180;
+ }
+yy227: yych = *++YYCURSOR;
+ switch(yych){
+ case 'c': goto yy228;
+ default: goto yy180;
+ }
+yy228: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy229;
+ default: goto yy180;
+ }
+yy229: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy230;
+ }
+yy230:
+#line 162 "c.re"
+{ RET(STRUCT); }
+#line 1975 "<stdout>"
+yy231: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy232;
+ default: goto yy180;
+ }
+yy232: yych = *++YYCURSOR;
+ switch(yych){
+ case 'c': goto yy233;
+ default: goto yy180;
+ }
+yy233: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy234;
+ }
+yy234:
+#line 161 "c.re"
+{ RET(STATIC); }
+#line 2053 "<stdout>"
+yy235: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy241;
+ default: goto yy180;
+ }
+yy236: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy237;
+ default: goto yy180;
+ }
+yy237: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy238;
+ default: goto yy180;
+ }
+yy238: yych = *++YYCURSOR;
+ switch(yych){
+ case 'f': goto yy239;
+ default: goto yy180;
+ }
+yy239: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy240;
+ }
+yy240:
+#line 160 "c.re"
+{ RET(SIZEOF); }
+#line 2141 "<stdout>"
+yy241: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy242;
+ default: goto yy180;
+ }
+yy242: yych = *++YYCURSOR;
+ switch(yych){
+ case 'd': goto yy243;
+ default: goto yy180;
+ }
+yy243: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy244;
+ }
+yy244:
+#line 159 "c.re"
+{ RET(SIGNED); }
+#line 2219 "<stdout>"
+yy245: yych = *++YYCURSOR;
+ switch(yych){
+ case 'r': goto yy246;
+ default: goto yy180;
+ }
+yy246: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy247;
+ default: goto yy180;
+ }
+yy247: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy248;
+ }
+yy248:
+#line 158 "c.re"
+{ RET(SHORT); }
+#line 2297 "<stdout>"
+yy249: yych = *++YYCURSOR;
+ switch(yych){
+ case 'g': goto yy250;
+ case 't': goto yy251;
+ default: goto yy180;
+ }
+yy250: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy256;
+ default: goto yy180;
+ }
+yy251: yych = *++YYCURSOR;
+ switch(yych){
+ case 'u': goto yy252;
+ default: goto yy180;
+ }
+yy252: yych = *++YYCURSOR;
+ switch(yych){
+ case 'r': goto yy253;
+ default: goto yy180;
+ }
+yy253: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy254;
+ default: goto yy180;
+ }
+yy254: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy255;
+ }
+yy255:
+#line 157 "c.re"
+{ RET(RETURN); }
+#line 2391 "<stdout>"
+yy256: yych = *++YYCURSOR;
+ switch(yych){
+ case 's': goto yy257;
+ default: goto yy180;
+ }
+yy257: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy258;
+ default: goto yy180;
+ }
+yy258: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy259;
+ default: goto yy180;
+ }
+yy259: yych = *++YYCURSOR;
+ switch(yych){
+ case 'r': goto yy260;
+ default: goto yy180;
+ }
+yy260: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy261;
+ }
+yy261:
+#line 156 "c.re"
+{ RET(REGISTER); }
+#line 2479 "<stdout>"
+yy262: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy263;
+ default: goto yy180;
+ }
+yy263: yych = *++YYCURSOR;
+ switch(yych){
+ case 'g': goto yy264;
+ default: goto yy180;
+ }
+yy264: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy265;
+ }
+yy265:
+#line 155 "c.re"
+{ RET(LONG); }
+#line 2557 "<stdout>"
+yy266: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy267;
+ }
+yy267:
+#line 153 "c.re"
+{ RET(IF); }
+#line 2625 "<stdout>"
+yy268: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy269;
+ default: goto yy180;
+ }
+yy269: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy270;
+ }
+yy270:
+#line 154 "c.re"
+{ RET(INT); }
+#line 2698 "<stdout>"
+yy271: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy272;
+ default: goto yy180;
+ }
+yy272: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy273;
+ default: goto yy180;
+ }
+yy273: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy274;
+ }
+yy274:
+#line 152 "c.re"
+{ RET(GOTO); }
+#line 2776 "<stdout>"
+yy275: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy279;
+ default: goto yy180;
+ }
+yy276: yych = *++YYCURSOR;
+ switch(yych){
+ case 'r': goto yy277;
+ default: goto yy180;
+ }
+yy277: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy278;
+ }
+yy278:
+#line 151 "c.re"
+{ RET(FOR); }
+#line 2854 "<stdout>"
+yy279: yych = *++YYCURSOR;
+ switch(yych){
+ case 'a': goto yy280;
+ default: goto yy180;
+ }
+yy280: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy281;
+ default: goto yy180;
+ }
+yy281: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy282;
+ }
+yy282:
+#line 150 "c.re"
+{ RET(FLOAT); }
+#line 2932 "<stdout>"
+yy283: yych = *++YYCURSOR;
+ switch(yych){
+ case 's': goto yy294;
+ default: goto yy180;
+ }
+yy284: yych = *++YYCURSOR;
+ switch(yych){
+ case 'u': goto yy291;
+ default: goto yy180;
+ }
+yy285: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy286;
+ default: goto yy180;
+ }
+yy286: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy287;
+ default: goto yy180;
+ }
+yy287: yych = *++YYCURSOR;
+ switch(yych){
+ case 'r': goto yy288;
+ default: goto yy180;
+ }
+yy288: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy289;
+ default: goto yy180;
+ }
+yy289: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy290;
+ }
+yy290:
+#line 149 "c.re"
+{ RET(EXTERN); }
+#line 3030 "<stdout>"
+yy291: yych = *++YYCURSOR;
+ switch(yych){
+ case 'm': goto yy292;
+ default: goto yy180;
+ }
+yy292: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy293;
+ }
+yy293:
+#line 148 "c.re"
+{ RET(ENUM); }
+#line 3103 "<stdout>"
+yy294: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy295;
+ default: goto yy180;
+ }
+yy295: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy296;
+ }
+yy296:
+#line 147 "c.re"
+{ RET(ELSE); }
+#line 3176 "<stdout>"
+yy297: yych = *++YYCURSOR;
+ switch(yych){
+ case 'f': goto yy305;
+ default: goto yy180;
+ }
+yy298: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy179;
+ case 'u': goto yy300;
+ default: goto yy299;
+ }
+yy299:
+#line 145 "c.re"
+{ RET(DO); }
+#line 3248 "<stdout>"
+yy300: yych = *++YYCURSOR;
+ switch(yych){
+ case 'b': goto yy301;
+ default: goto yy180;
+ }
+yy301: yych = *++YYCURSOR;
+ switch(yych){
+ case 'l': goto yy302;
+ default: goto yy180;
+ }
+yy302: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy303;
+ default: goto yy180;
+ }
+yy303: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy304;
+ }
+yy304:
+#line 146 "c.re"
+{ RET(DOUBLE); }
+#line 3331 "<stdout>"
+yy305: yych = *++YYCURSOR;
+ switch(yych){
+ case 'a': goto yy306;
+ default: goto yy180;
+ }
+yy306: yych = *++YYCURSOR;
+ switch(yych){
+ case 'u': goto yy307;
+ default: goto yy180;
+ }
+yy307: yych = *++YYCURSOR;
+ switch(yych){
+ case 'l': goto yy308;
+ default: goto yy180;
+ }
+yy308: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy309;
+ default: goto yy180;
+ }
+yy309: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy310;
+ }
+yy310:
+#line 144 "c.re"
+{ RET(DEFAULT); }
+#line 3419 "<stdout>"
+yy311: yych = *++YYCURSOR;
+ switch(yych){
+ case 's': goto yy327;
+ default: goto yy180;
+ }
+yy312: yych = *++YYCURSOR;
+ switch(yych){
+ case 'a': goto yy324;
+ default: goto yy180;
+ }
+yy313: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy314;
+ default: goto yy180;
+ }
+yy314: yych = *++YYCURSOR;
+ switch(yych){
+ case 's': goto yy315;
+ case 't': goto yy316;
+ default: goto yy180;
+ }
+yy315: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy322;
+ default: goto yy180;
+ }
+yy316: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy317;
+ default: goto yy180;
+ }
+yy317: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy318;
+ default: goto yy180;
+ }
+yy318: yych = *++YYCURSOR;
+ switch(yych){
+ case 'u': goto yy319;
+ default: goto yy180;
+ }
+yy319: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy320;
+ default: goto yy180;
+ }
+yy320: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy321;
+ }
+yy321:
+#line 143 "c.re"
+{ RET(CONTINUE); }
+#line 3533 "<stdout>"
+yy322: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy323;
+ }
+yy323:
+#line 142 "c.re"
+{ RET(CONST); }
+#line 3601 "<stdout>"
+yy324: yych = *++YYCURSOR;
+ switch(yych){
+ case 'r': goto yy325;
+ default: goto yy180;
+ }
+yy325: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy326;
+ }
+yy326:
+#line 141 "c.re"
+{ RET(CHAR); }
+#line 3674 "<stdout>"
+yy327: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy328;
+ default: goto yy180;
+ }
+yy328: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy329;
+ }
+yy329:
+#line 140 "c.re"
+{ RET(CASE); }
+#line 3747 "<stdout>"
+yy330: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy331;
+ default: goto yy180;
+ }
+yy331: yych = *++YYCURSOR;
+ switch(yych){
+ case 'a': goto yy332;
+ default: goto yy180;
+ }
+yy332: yych = *++YYCURSOR;
+ switch(yych){
+ case 'k': goto yy333;
+ default: goto yy180;
+ }
+yy333: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy334;
+ }
+yy334:
+#line 139 "c.re"
+{ RET(BREAK); }
+#line 3830 "<stdout>"
+yy335: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy336;
+ default: goto yy180;
+ }
+yy336: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy337;
+ default: goto yy180;
+ }
+yy337: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy338;
+ }
+yy338:
+#line 138 "c.re"
+{ RET(AUTO); }
+#line 3908 "<stdout>"
+yy339: ++YYCURSOR;
+ goto yy340;
+yy340:
+#line 189 "c.re"
+{ RET(DIVEQ); }
+#line 3914 "<stdout>"
+yy341: ++YYCURSOR;
+ goto yy342;
+yy342:
+#line 136 "c.re"
+{ goto comment; }
+#line 3920 "<stdout>"
+}
+#line 245 "c.re"
+
+
+comment:
+
+#line 3924 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy343;
+yy344: ++YYCURSOR;
+yy343:
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy347;
+ case '*': goto yy345;
+ default: goto yy349;
+ }
+yy345: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '/': goto yy350;
+ default: goto yy346;
+ }
+yy346:
+#line 256 "c.re"
+{ goto comment; }
+#line 3946 "<stdout>"
+yy347: ++YYCURSOR;
+ goto yy348;
+yy348:
+#line 251 "c.re"
+{
+ if(cursor == s->eof) RET(EOI);
+ s->tok = s->pos = cursor; s->line++;
+ goto comment;
+ }
+#line 3956 "<stdout>"
+yy349: yych = *++YYCURSOR;
+ goto yy346;
+yy350: ++YYCURSOR;
+ goto yy351;
+yy351:
+#line 249 "c.re"
+{ goto std; }
+#line 3964 "<stdout>"
+}
+#line 257 "c.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);
+}
--- /dev/null
+#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;
+/*!re2c
+any = [\000-\377];
+O = [0-7];
+D = [0-9];
+L = [a-zA-Z_];
+H = [a-fA-F0-9];
+E = [Ee] [+-]? D+;
+FS = [fFlL];
+IS = [uUlL]*;
+ESC = [\\] ([abfnrtv?'"\\] | "x" H+ | O+);
+*/
+
+/*!re2c
+ "/*" { goto comment; }
+
+ "auto" { RET(AUTO); }
+ "break" { RET(BREAK); }
+ "case" { RET(CASE); }
+ "char" { RET(CHAR); }
+ "const" { RET(CONST); }
+ "continue" { RET(CONTINUE); }
+ "default" { RET(DEFAULT); }
+ "do" { RET(DO); }
+ "double" { RET(DOUBLE); }
+ "else" { RET(ELSE); }
+ "enum" { RET(ENUM); }
+ "extern" { RET(EXTERN); }
+ "float" { RET(FLOAT); }
+ "for" { RET(FOR); }
+ "goto" { RET(GOTO); }
+ "if" { RET(IF); }
+ "int" { RET(INT); }
+ "long" { RET(LONG); }
+ "register" { RET(REGISTER); }
+ "return" { RET(RETURN); }
+ "short" { RET(SHORT); }
+ "signed" { RET(SIGNED); }
+ "sizeof" { RET(SIZEOF); }
+ "static" { RET(STATIC); }
+ "struct" { RET(STRUCT); }
+ "switch" { RET(SWITCH); }
+ "typedef" { RET(TYPEDEF); }
+ "union" { RET(UNION); }
+ "unsigned" { RET(UNSIGNED); }
+ "void" { RET(VOID); }
+ "volatile" { RET(VOLATILE); }
+ "while" { RET(WHILE); }
+
+ L (L|D)* { RET(ID); }
+
+ ("0" [xX] H+ IS?) | ("0" D+ IS?) | (D+ IS?) |
+ (['] (ESC|any\[\n\\'])* ['])
+ { RET(ICON); }
+
+ (D+ E FS?) | (D* "." D+ E? FS?) | (D+ "." D* E? FS?)
+ { RET(FCON); }
+
+ (["] (ESC|any\[\n\\"])* ["])
+ { RET(SCON); }
+
+ "..." { RET(ELLIPSIS); }
+ ">>=" { RET(RSHIFTEQ); }
+ "<<=" { RET(LSHIFTEQ); }
+ "+=" { RET(ADDEQ); }
+ "-=" { RET(SUBEQ); }
+ "*=" { RET(MULEQ); }
+ "/=" { RET(DIVEQ); }
+ "%=" { RET(MODEQ); }
+ "&=" { RET(ANDEQ); }
+ "^=" { RET(XOREQ); }
+ "|=" { RET(OREQ); }
+ ">>" { RET(RSHIFT); }
+ "<<" { RET(LSHIFT); }
+ "++" { RET(INCR); }
+ "--" { RET(DECR); }
+ "->" { RET(DEREF); }
+ "&&" { RET(ANDAND); }
+ "||" { RET(OROR); }
+ "<=" { RET(LEQ); }
+ ">=" { RET(GEQ); }
+ "==" { RET(EQL); }
+ "!=" { RET(NEQ); }
+ ";" { RET(';'); }
+ "{" { RET('{'); }
+ "}" { RET('}'); }
+ "," { RET(','); }
+ ":" { RET(':'); }
+ "=" { RET('='); }
+ "(" { RET('('); }
+ ")" { RET(')'); }
+ "[" { RET('['); }
+ "]" { RET(']'); }
+ "." { RET('.'); }
+ "&" { RET('&'); }
+ "!" { RET('!'); }
+ "~" { RET('~'); }
+ "-" { RET('-'); }
+ "+" { RET('+'); }
+ "*" { RET('*'); }
+ "/" { RET('/'); }
+ "%" { RET('%'); }
+ "<" { RET('<'); }
+ ">" { RET('>'); }
+ "^" { RET('^'); }
+ "|" { RET('|'); }
+ "?" { RET('?'); }
+
+
+ [ \t\v\f]+ { goto std; }
+
+ "\n"
+ {
+ if(cursor == s->eof) RET(EOI);
+ s->pos = cursor; s->line++;
+ goto std;
+ }
+
+ any
+ {
+ printf("unexpected character: %c\n", *s->tok);
+ goto std;
+ }
+*/
+
+comment:
+/*!re2c
+ "*/" { goto std; }
+ "\n"
+ {
+ if(cursor == s->eof) RET(EOI);
+ s->tok = s->pos = cursor; s->line++;
+ goto comment;
+ }
+ any { goto comment; }
+*/
+}
+
+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);
+}
--- /dev/null
+
+#line 1 "cmmap.re"
+#include <stdlib.h>
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/mman.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 unint;
+typedef unsigned char uchar;
+
+#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 {
+ uchar *tok, *ptr, *cur, *pos, *lim, *eof;
+ unint line;
+} Scanner;
+
+uchar *fill(Scanner *s, uchar *cursor){
+ if(!s->eof){
+ unint cnt = s->lim - s->tok;
+ uchar *buf = malloc((cnt + 1)*sizeof(uchar));
+ memcpy(buf, s->tok, cnt);
+ cursor = &buf[cursor - s->tok];
+ s->pos = &buf[s->pos - s->tok];
+ s->ptr = &buf[s->ptr - s->tok];
+ s->lim = &buf[cnt];
+ s->eof = s->lim; *(s->eof)++ = '\n';
+ s->tok = buf;
+ }
+ return cursor;
+}
+
+int scan(Scanner *s){
+ uchar *cursor = s->cur;
+std:
+ s->tok = cursor;
+#line 116 "cmmap.re"
+
+
+
+#line 7 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy0;
+yy1: ++YYCURSOR;
+yy0:
+ if((YYLIMIT - YYCURSOR) < 9) YYFILL(9);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x09: case 0x0B:
+ case 0x0C: case ' ': goto yy73;
+ case 0x0A: goto yy75;
+ case '!': goto yy49;
+ case '"': goto yy28;
+ case '%': goto yy39;
+ case '&': goto yy41;
+ case '\'': goto yy24;
+ case '(': goto yy61;
+ case ')': goto yy63;
+ case '*': goto yy37;
+ case '+': goto yy33;
+ case ',': goto yy57;
+ case '-': goto yy35;
+ case '.': goto yy26;
+ case '/': goto yy2;
+ case '0': goto yy21;
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy23;
+ case ':': goto yy59;
+ case ';': goto yy51;
+ case '<': goto yy31;
+ case '=': goto yy47;
+ case '>': goto yy29;
+ case '?': goto yy71;
+ 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 'h': case 'j':
+ case 'k': case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q': case 'x':
+ case 'y':
+ case 'z': goto yy20;
+ case '[': goto yy65;
+ case ']': goto yy67;
+ case '^': goto yy43;
+ case 'a': goto yy4;
+ case 'b': goto yy6;
+ case 'c': goto yy7;
+ case 'd': goto yy8;
+ case 'e': goto yy9;
+ case 'f': goto yy10;
+ case 'g': goto yy11;
+ case 'i': goto yy12;
+ case 'l': goto yy13;
+ case 'r': goto yy14;
+ case 's': goto yy15;
+ case 't': goto yy16;
+ case 'u': goto yy17;
+ case 'v': goto yy18;
+ case 'w': goto yy19;
+ case '{': goto yy53;
+ case '|': goto yy45;
+ case '}': goto yy55;
+ case '~': goto yy69;
+ default: goto yy77;
+ }
+yy2: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '*': goto yy341;
+ case '=': goto yy339;
+ default: goto yy3;
+ }
+yy3:
+#line 205 "cmmap.re"
+{ RET('/'); }
+#line 115 "<stdout>"
+yy4: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case 'u': goto yy335;
+ default: goto yy180;
+ }
+yy5:
+#line 154 "cmmap.re"
+{ RET(ID); }
+#line 124 "<stdout>"
+yy6: yych = *++YYCURSOR;
+ switch(yych){
+ case 'r': goto yy330;
+ default: goto yy180;
+ }
+yy7: yych = *++YYCURSOR;
+ switch(yych){
+ case 'a': goto yy311;
+ case 'h': goto yy312;
+ case 'o': goto yy313;
+ default: goto yy180;
+ }
+yy8: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy297;
+ case 'o': goto yy298;
+ default: goto yy180;
+ }
+yy9: yych = *++YYCURSOR;
+ switch(yych){
+ case 'l': goto yy283;
+ case 'n': goto yy284;
+ case 'x': goto yy285;
+ default: goto yy180;
+ }
+yy10: yych = *++YYCURSOR;
+ switch(yych){
+ case 'l': goto yy275;
+ case 'o': goto yy276;
+ default: goto yy180;
+ }
+yy11: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy271;
+ default: goto yy180;
+ }
+yy12: yych = *++YYCURSOR;
+ switch(yych){
+ case 'f': goto yy266;
+ case 'n': goto yy268;
+ default: goto yy180;
+ }
+yy13: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy262;
+ default: goto yy180;
+ }
+yy14: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy249;
+ default: goto yy180;
+ }
+yy15: yych = *++YYCURSOR;
+ switch(yych){
+ case 'h': goto yy216;
+ case 'i': goto yy217;
+ case 't': goto yy218;
+ case 'w': goto yy219;
+ default: goto yy180;
+ }
+yy16: yych = *++YYCURSOR;
+ switch(yych){
+ case 'y': goto yy209;
+ default: goto yy180;
+ }
+yy17: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy197;
+ default: goto yy180;
+ }
+yy18: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy186;
+ default: goto yy180;
+ }
+yy19: yych = *++YYCURSOR;
+ switch(yych){
+ case 'h': goto yy181;
+ default: goto yy180;
+ }
+yy20: yych = *++YYCURSOR;
+ goto yy180;
+yy21: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 'L': case 'U': case 'l': case 'u': goto yy155;
+ case 'X': case 'x': goto yy172;
+ default: goto yy171;
+ }
+yy22:
+#line 158 "cmmap.re"
+{ RET(ICON); }
+#line 217 "<stdout>"
+yy23: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy153;
+yy24: yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 0x0A: goto yy25;
+ default: goto yy143;
+ }
+yy25:
+#line 224 "cmmap.re"
+{
+ printf("unexpected character: %c\n", *s->tok);
+ goto std;
+ }
+#line 233 "<stdout>"
+yy26: yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case '.': goto yy131;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy132;
+ default: goto yy27;
+ }
+yy27:
+#line 198 "cmmap.re"
+{ RET('.'); }
+#line 253 "<stdout>"
+yy28: yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 0x0A: goto yy25;
+ default: goto yy121;
+ }
+yy29: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy114;
+ case '>': goto yy116;
+ default: goto yy30;
+ }
+yy30:
+#line 208 "cmmap.re"
+{ RET('>'); }
+#line 269 "<stdout>"
+yy31: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '<': goto yy110;
+ case '=': goto yy108;
+ default: goto yy32;
+ }
+yy32:
+#line 207 "cmmap.re"
+{ RET('<'); }
+#line 279 "<stdout>"
+yy33: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '+': goto yy104;
+ case '=': goto yy106;
+ default: goto yy34;
+ }
+yy34:
+#line 203 "cmmap.re"
+{ RET('+'); }
+#line 289 "<stdout>"
+yy35: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '-': goto yy100;
+ case '=': goto yy102;
+ case '>': goto yy98;
+ default: goto yy36;
+ }
+yy36:
+#line 202 "cmmap.re"
+{ RET('-'); }
+#line 300 "<stdout>"
+yy37: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy96;
+ default: goto yy38;
+ }
+yy38:
+#line 204 "cmmap.re"
+{ RET('*'); }
+#line 309 "<stdout>"
+yy39: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy94;
+ default: goto yy40;
+ }
+yy40:
+#line 206 "cmmap.re"
+{ RET('%'); }
+#line 318 "<stdout>"
+yy41: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '&': goto yy90;
+ case '=': goto yy92;
+ default: goto yy42;
+ }
+yy42:
+#line 199 "cmmap.re"
+{ RET('&'); }
+#line 328 "<stdout>"
+yy43: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy88;
+ default: goto yy44;
+ }
+yy44:
+#line 209 "cmmap.re"
+{ RET('^'); }
+#line 337 "<stdout>"
+yy45: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy86;
+ case '|': goto yy84;
+ default: goto yy46;
+ }
+yy46:
+#line 210 "cmmap.re"
+{ RET('|'); }
+#line 347 "<stdout>"
+yy47: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy82;
+ default: goto yy48;
+ }
+yy48:
+#line 193 "cmmap.re"
+{ RET('='); }
+#line 356 "<stdout>"
+yy49: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy80;
+ default: goto yy50;
+ }
+yy50:
+#line 200 "cmmap.re"
+{ RET('!'); }
+#line 365 "<stdout>"
+yy51: ++YYCURSOR;
+ goto yy52;
+yy52:
+#line 188 "cmmap.re"
+{ RET(';'); }
+#line 371 "<stdout>"
+yy53: ++YYCURSOR;
+ goto yy54;
+yy54:
+#line 189 "cmmap.re"
+{ RET('{'); }
+#line 377 "<stdout>"
+yy55: ++YYCURSOR;
+ goto yy56;
+yy56:
+#line 190 "cmmap.re"
+{ RET('}'); }
+#line 383 "<stdout>"
+yy57: ++YYCURSOR;
+ goto yy58;
+yy58:
+#line 191 "cmmap.re"
+{ RET(','); }
+#line 389 "<stdout>"
+yy59: ++YYCURSOR;
+ goto yy60;
+yy60:
+#line 192 "cmmap.re"
+{ RET(':'); }
+#line 395 "<stdout>"
+yy61: ++YYCURSOR;
+ goto yy62;
+yy62:
+#line 194 "cmmap.re"
+{ RET('('); }
+#line 401 "<stdout>"
+yy63: ++YYCURSOR;
+ goto yy64;
+yy64:
+#line 195 "cmmap.re"
+{ RET(')'); }
+#line 407 "<stdout>"
+yy65: ++YYCURSOR;
+ goto yy66;
+yy66:
+#line 196 "cmmap.re"
+{ RET('['); }
+#line 413 "<stdout>"
+yy67: ++YYCURSOR;
+ goto yy68;
+yy68:
+#line 197 "cmmap.re"
+{ RET(']'); }
+#line 419 "<stdout>"
+yy69: ++YYCURSOR;
+ goto yy70;
+yy70:
+#line 201 "cmmap.re"
+{ RET('~'); }
+#line 425 "<stdout>"
+yy71: ++YYCURSOR;
+ goto yy72;
+yy72:
+#line 211 "cmmap.re"
+{ RET('?'); }
+#line 431 "<stdout>"
+yy73: ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy79;
+yy74:
+#line 214 "cmmap.re"
+{ goto std; }
+#line 437 "<stdout>"
+yy75: ++YYCURSOR;
+ goto yy76;
+yy76:
+#line 217 "cmmap.re"
+{
+ if(cursor == s->eof) RET(EOI);
+ s->pos = cursor; s->line++;
+ goto std;
+ }
+#line 447 "<stdout>"
+yy77: yych = *++YYCURSOR;
+ goto yy25;
+yy78: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy79;
+yy79: switch(yych){
+ case 0x09: case 0x0B:
+ case 0x0C: case ' ': goto yy78;
+ default: goto yy74;
+ }
+yy80: ++YYCURSOR;
+ goto yy81;
+yy81:
+#line 187 "cmmap.re"
+{ RET(NEQ); }
+#line 465 "<stdout>"
+yy82: ++YYCURSOR;
+ goto yy83;
+yy83:
+#line 186 "cmmap.re"
+{ RET(EQL); }
+#line 471 "<stdout>"
+yy84: ++YYCURSOR;
+ goto yy85;
+yy85:
+#line 183 "cmmap.re"
+{ RET(OROR); }
+#line 477 "<stdout>"
+yy86: ++YYCURSOR;
+ goto yy87;
+yy87:
+#line 176 "cmmap.re"
+{ RET(OREQ); }
+#line 483 "<stdout>"
+yy88: ++YYCURSOR;
+ goto yy89;
+yy89:
+#line 175 "cmmap.re"
+{ RET(XOREQ); }
+#line 489 "<stdout>"
+yy90: ++YYCURSOR;
+ goto yy91;
+yy91:
+#line 182 "cmmap.re"
+{ RET(ANDAND); }
+#line 495 "<stdout>"
+yy92: ++YYCURSOR;
+ goto yy93;
+yy93:
+#line 174 "cmmap.re"
+{ RET(ANDEQ); }
+#line 501 "<stdout>"
+yy94: ++YYCURSOR;
+ goto yy95;
+yy95:
+#line 173 "cmmap.re"
+{ RET(MODEQ); }
+#line 507 "<stdout>"
+yy96: ++YYCURSOR;
+ goto yy97;
+yy97:
+#line 171 "cmmap.re"
+{ RET(MULEQ); }
+#line 513 "<stdout>"
+yy98: ++YYCURSOR;
+ goto yy99;
+yy99:
+#line 181 "cmmap.re"
+{ RET(DEREF); }
+#line 519 "<stdout>"
+yy100: ++YYCURSOR;
+ goto yy101;
+yy101:
+#line 180 "cmmap.re"
+{ RET(DECR); }
+#line 525 "<stdout>"
+yy102: ++YYCURSOR;
+ goto yy103;
+yy103:
+#line 170 "cmmap.re"
+{ RET(SUBEQ); }
+#line 531 "<stdout>"
+yy104: ++YYCURSOR;
+ goto yy105;
+yy105:
+#line 179 "cmmap.re"
+{ RET(INCR); }
+#line 537 "<stdout>"
+yy106: ++YYCURSOR;
+ goto yy107;
+yy107:
+#line 169 "cmmap.re"
+{ RET(ADDEQ); }
+#line 543 "<stdout>"
+yy108: ++YYCURSOR;
+ goto yy109;
+yy109:
+#line 184 "cmmap.re"
+{ RET(LEQ); }
+#line 549 "<stdout>"
+yy110: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy112;
+ default: goto yy111;
+ }
+yy111:
+#line 178 "cmmap.re"
+{ RET(LSHIFT); }
+#line 558 "<stdout>"
+yy112: ++YYCURSOR;
+ goto yy113;
+yy113:
+#line 168 "cmmap.re"
+{ RET(LSHIFTEQ); }
+#line 564 "<stdout>"
+yy114: ++YYCURSOR;
+ goto yy115;
+yy115:
+#line 185 "cmmap.re"
+{ RET(GEQ); }
+#line 570 "<stdout>"
+yy116: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy118;
+ default: goto yy117;
+ }
+yy117:
+#line 177 "cmmap.re"
+{ RET(RSHIFT); }
+#line 579 "<stdout>"
+yy118: ++YYCURSOR;
+ goto yy119;
+yy119:
+#line 167 "cmmap.re"
+{ RET(RSHIFTEQ); }
+#line 585 "<stdout>"
+yy120: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy121;
+yy121: switch(yych){
+ case 0x0A: goto yy122;
+ case '"': goto yy124;
+ case '\\': goto yy123;
+ default: goto yy120;
+ }
+yy122: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy22;
+ case 3: goto yy134;
+ case 2: goto yy27;
+ case 1: goto yy25;
+ }
+yy123: ++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 yy120;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7': goto yy127;
+ case 'x': goto yy126;
+ default: goto yy122;
+ }
+yy124: ++YYCURSOR;
+ goto yy125;
+yy125:
+#line 164 "cmmap.re"
+{ RET(SCON); }
+#line 627 "<stdout>"
+yy126: ++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 yy129;
+ default: goto yy122;
+ }
+yy127: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy128;
+yy128: switch(yych){
+ case 0x0A: goto yy122;
+ case '"': goto yy124;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7': goto yy127;
+ case '\\': goto yy123;
+ default: goto yy120;
+ }
+yy129: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy130;
+yy130: switch(yych){
+ case 0x0A: goto yy122;
+ case '"': goto yy124;
+ 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 yy129;
+ case '\\': goto yy123;
+ default: goto yy120;
+ }
+yy131: yych = *++YYCURSOR;
+ switch(yych){
+ case '.': goto yy140;
+ default: goto yy122;
+ }
+yy132: yyaccept = 3;
+ YYMARKER = ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy133;
+yy133: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy132;
+ case 'E': case 'e': goto yy135;
+ case 'F': case 'L': case 'f': case 'l': goto yy136;
+ default: goto yy134;
+ }
+yy134:
+#line 161 "cmmap.re"
+{ RET(FCON); }
+#line 733 "<stdout>"
+yy135: yych = *++YYCURSOR;
+ switch(yych){
+ case '+': case '-': goto yy137;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy138;
+ default: goto yy122;
+ }
+yy136: yych = *++YYCURSOR;
+ goto yy134;
+yy137: 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 yy138;
+ default: goto yy122;
+ }
+yy138: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy139;
+yy139: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy138;
+ case 'F': case 'L': case 'f': case 'l': goto yy136;
+ default: goto yy134;
+ }
+yy140: ++YYCURSOR;
+ goto yy141;
+yy141:
+#line 166 "cmmap.re"
+{ RET(ELLIPSIS); }
+#line 789 "<stdout>"
+yy142: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy143;
+yy143: switch(yych){
+ case 0x0A: goto yy122;
+ case '\'': goto yy145;
+ case '\\': goto yy144;
+ default: goto yy142;
+ }
+yy144: ++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 yy142;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7': goto yy147;
+ case 'x': goto yy146;
+ default: goto yy122;
+ }
+yy145: yych = *++YYCURSOR;
+ goto yy22;
+yy146: ++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 yy149;
+ default: goto yy122;
+ }
+yy147: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy148;
+yy148: switch(yych){
+ case 0x0A: goto yy122;
+ case '\'': goto yy145;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7': goto yy147;
+ case '\\': goto yy144;
+ default: goto yy142;
+ }
+yy149: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy150;
+yy150: switch(yych){
+ case 0x0A: goto yy122;
+ case '\'': goto yy145;
+ 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 yy149;
+ case '\\': goto yy144;
+ default: goto yy142;
+ }
+yy151: yyaccept = 3;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 'E': case 'e': goto yy162;
+ default: goto yy161;
+ }
+yy152: yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ goto yy153;
+yy153: switch(yych){
+ case '.': goto yy151;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy152;
+ case 'E': case 'e': goto yy154;
+ case 'L': case 'U': case 'l': case 'u': goto yy155;
+ default: goto yy22;
+ }
+yy154: yych = *++YYCURSOR;
+ switch(yych){
+ case '+': case '-': goto yy157;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy158;
+ default: goto yy122;
+ }
+yy155: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy156;
+yy156: switch(yych){
+ case 'L': case 'U': case 'l': case 'u': goto yy155;
+ default: goto yy22;
+ }
+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': goto yy158;
+ default: goto yy122;
+ }
+yy158: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy159;
+yy159: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy158;
+ case 'F': case 'L': case 'f': case 'l': goto yy136;
+ default: goto yy134;
+ }
+yy160: yyaccept = 3;
+ YYMARKER = ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy161;
+yy161: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy160;
+ case 'E': case 'e': goto yy166;
+ case 'F': case 'L': case 'f': case 'l': goto yy136;
+ default: goto yy134;
+ }
+yy162: yych = *++YYCURSOR;
+ switch(yych){
+ case '+': case '-': goto yy163;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy164;
+ default: goto yy122;
+ }
+yy163: 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 yy164;
+ default: goto yy122;
+ }
+yy164: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy165;
+yy165: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy164;
+ case 'F': case 'L': case 'f': case 'l': goto yy136;
+ default: goto yy134;
+ }
+yy166: yych = *++YYCURSOR;
+ switch(yych){
+ case '+': case '-': goto yy167;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy168;
+ default: goto yy122;
+ }
+yy167: 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 yy168;
+ default: goto yy122;
+ }
+yy168: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy169;
+yy169: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy168;
+ case 'F': case 'L': case 'f': case 'l': goto yy136;
+ default: goto yy134;
+ }
+yy170: yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+ yych = *YYCURSOR;
+ goto yy171;
+yy171: switch(yych){
+ case '.': goto yy151;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy170;
+ case 'E': case 'e': goto yy154;
+ case 'L': case 'U': case 'l': case 'u': goto yy177;
+ default: goto yy22;
+ }
+yy172: 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 yy173;
+ default: goto yy122;
+ }
+yy173: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy174;
+yy174: 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 yy173;
+ case 'L': case 'U': case 'l': case 'u': goto yy175;
+ default: goto yy22;
+ }
+yy175: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy176;
+yy176: switch(yych){
+ case 'L': case 'U': case 'l': case 'u': goto yy175;
+ default: goto yy22;
+ }
+yy177: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy178;
+yy178: switch(yych){
+ case 'L': case 'U': case 'l': case 'u': goto yy177;
+ default: goto yy22;
+ }
+yy179: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy180;
+yy180: 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 yy179;
+ default: goto yy5;
+ }
+yy181: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy182;
+ default: goto yy180;
+ }
+yy182: yych = *++YYCURSOR;
+ switch(yych){
+ case 'l': goto yy183;
+ default: goto yy180;
+ }
+yy183: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy184;
+ default: goto yy180;
+ }
+yy184: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy185;
+ }
+yy185:
+#line 152 "cmmap.re"
+{ RET(WHILE); }
+#line 1340 "<stdout>"
+yy186: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy187;
+ case 'l': goto yy188;
+ default: goto yy180;
+ }
+yy187: yych = *++YYCURSOR;
+ switch(yych){
+ case 'd': goto yy195;
+ default: goto yy180;
+ }
+yy188: yych = *++YYCURSOR;
+ switch(yych){
+ case 'a': goto yy189;
+ default: goto yy180;
+ }
+yy189: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy190;
+ default: goto yy180;
+ }
+yy190: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy191;
+ default: goto yy180;
+ }
+yy191: yych = *++YYCURSOR;
+ switch(yych){
+ case 'l': goto yy192;
+ default: goto yy180;
+ }
+yy192: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy193;
+ default: goto yy180;
+ }
+yy193: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy194;
+ }
+yy194:
+#line 151 "cmmap.re"
+{ RET(VOLATILE); }
+#line 1444 "<stdout>"
+yy195: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy196;
+ }
+yy196:
+#line 150 "cmmap.re"
+{ RET(VOID); }
+#line 1512 "<stdout>"
+yy197: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy198;
+ case 's': goto yy199;
+ default: goto yy180;
+ }
+yy198: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy206;
+ default: goto yy180;
+ }
+yy199: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy200;
+ default: goto yy180;
+ }
+yy200: yych = *++YYCURSOR;
+ switch(yych){
+ case 'g': goto yy201;
+ default: goto yy180;
+ }
+yy201: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy202;
+ default: goto yy180;
+ }
+yy202: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy203;
+ default: goto yy180;
+ }
+yy203: yych = *++YYCURSOR;
+ switch(yych){
+ case 'd': goto yy204;
+ default: goto yy180;
+ }
+yy204: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy205;
+ }
+yy205:
+#line 149 "cmmap.re"
+{ RET(UNSIGNED); }
+#line 1616 "<stdout>"
+yy206: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy207;
+ default: goto yy180;
+ }
+yy207: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy208;
+ }
+yy208:
+#line 148 "cmmap.re"
+{ RET(UNION); }
+#line 1689 "<stdout>"
+yy209: yych = *++YYCURSOR;
+ switch(yych){
+ case 'p': goto yy210;
+ default: goto yy180;
+ }
+yy210: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy211;
+ default: goto yy180;
+ }
+yy211: yych = *++YYCURSOR;
+ switch(yych){
+ case 'd': goto yy212;
+ default: goto yy180;
+ }
+yy212: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy213;
+ default: goto yy180;
+ }
+yy213: yych = *++YYCURSOR;
+ switch(yych){
+ case 'f': goto yy214;
+ default: goto yy180;
+ }
+yy214: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy215;
+ }
+yy215:
+#line 147 "cmmap.re"
+{ RET(TYPEDEF); }
+#line 1782 "<stdout>"
+yy216: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy245;
+ default: goto yy180;
+ }
+yy217: yych = *++YYCURSOR;
+ switch(yych){
+ case 'g': goto yy235;
+ case 'z': goto yy236;
+ default: goto yy180;
+ }
+yy218: yych = *++YYCURSOR;
+ switch(yych){
+ case 'a': goto yy225;
+ case 'r': goto yy226;
+ default: goto yy180;
+ }
+yy219: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy220;
+ default: goto yy180;
+ }
+yy220: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy221;
+ default: goto yy180;
+ }
+yy221: yych = *++YYCURSOR;
+ switch(yych){
+ case 'c': goto yy222;
+ default: goto yy180;
+ }
+yy222: yych = *++YYCURSOR;
+ switch(yych){
+ case 'h': goto yy223;
+ default: goto yy180;
+ }
+yy223: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy224;
+ }
+yy224:
+#line 146 "cmmap.re"
+{ RET(SWITCH); }
+#line 1887 "<stdout>"
+yy225: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy231;
+ default: goto yy180;
+ }
+yy226: yych = *++YYCURSOR;
+ switch(yych){
+ case 'u': goto yy227;
+ default: goto yy180;
+ }
+yy227: yych = *++YYCURSOR;
+ switch(yych){
+ case 'c': goto yy228;
+ default: goto yy180;
+ }
+yy228: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy229;
+ default: goto yy180;
+ }
+yy229: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy230;
+ }
+yy230:
+#line 145 "cmmap.re"
+{ RET(STRUCT); }
+#line 1975 "<stdout>"
+yy231: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy232;
+ default: goto yy180;
+ }
+yy232: yych = *++YYCURSOR;
+ switch(yych){
+ case 'c': goto yy233;
+ default: goto yy180;
+ }
+yy233: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy234;
+ }
+yy234:
+#line 144 "cmmap.re"
+{ RET(STATIC); }
+#line 2053 "<stdout>"
+yy235: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy241;
+ default: goto yy180;
+ }
+yy236: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy237;
+ default: goto yy180;
+ }
+yy237: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy238;
+ default: goto yy180;
+ }
+yy238: yych = *++YYCURSOR;
+ switch(yych){
+ case 'f': goto yy239;
+ default: goto yy180;
+ }
+yy239: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy240;
+ }
+yy240:
+#line 143 "cmmap.re"
+{ RET(SIZEOF); }
+#line 2141 "<stdout>"
+yy241: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy242;
+ default: goto yy180;
+ }
+yy242: yych = *++YYCURSOR;
+ switch(yych){
+ case 'd': goto yy243;
+ default: goto yy180;
+ }
+yy243: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy244;
+ }
+yy244:
+#line 142 "cmmap.re"
+{ RET(SIGNED); }
+#line 2219 "<stdout>"
+yy245: yych = *++YYCURSOR;
+ switch(yych){
+ case 'r': goto yy246;
+ default: goto yy180;
+ }
+yy246: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy247;
+ default: goto yy180;
+ }
+yy247: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy248;
+ }
+yy248:
+#line 141 "cmmap.re"
+{ RET(SHORT); }
+#line 2297 "<stdout>"
+yy249: yych = *++YYCURSOR;
+ switch(yych){
+ case 'g': goto yy250;
+ case 't': goto yy251;
+ default: goto yy180;
+ }
+yy250: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy256;
+ default: goto yy180;
+ }
+yy251: yych = *++YYCURSOR;
+ switch(yych){
+ case 'u': goto yy252;
+ default: goto yy180;
+ }
+yy252: yych = *++YYCURSOR;
+ switch(yych){
+ case 'r': goto yy253;
+ default: goto yy180;
+ }
+yy253: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy254;
+ default: goto yy180;
+ }
+yy254: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy255;
+ }
+yy255:
+#line 140 "cmmap.re"
+{ RET(RETURN); }
+#line 2391 "<stdout>"
+yy256: yych = *++YYCURSOR;
+ switch(yych){
+ case 's': goto yy257;
+ default: goto yy180;
+ }
+yy257: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy258;
+ default: goto yy180;
+ }
+yy258: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy259;
+ default: goto yy180;
+ }
+yy259: yych = *++YYCURSOR;
+ switch(yych){
+ case 'r': goto yy260;
+ default: goto yy180;
+ }
+yy260: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy261;
+ }
+yy261:
+#line 139 "cmmap.re"
+{ RET(REGISTER); }
+#line 2479 "<stdout>"
+yy262: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy263;
+ default: goto yy180;
+ }
+yy263: yych = *++YYCURSOR;
+ switch(yych){
+ case 'g': goto yy264;
+ default: goto yy180;
+ }
+yy264: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy265;
+ }
+yy265:
+#line 138 "cmmap.re"
+{ RET(LONG); }
+#line 2557 "<stdout>"
+yy266: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy267;
+ }
+yy267:
+#line 136 "cmmap.re"
+{ RET(IF); }
+#line 2625 "<stdout>"
+yy268: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy269;
+ default: goto yy180;
+ }
+yy269: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy270;
+ }
+yy270:
+#line 137 "cmmap.re"
+{ RET(INT); }
+#line 2698 "<stdout>"
+yy271: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy272;
+ default: goto yy180;
+ }
+yy272: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy273;
+ default: goto yy180;
+ }
+yy273: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy274;
+ }
+yy274:
+#line 135 "cmmap.re"
+{ RET(GOTO); }
+#line 2776 "<stdout>"
+yy275: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy279;
+ default: goto yy180;
+ }
+yy276: yych = *++YYCURSOR;
+ switch(yych){
+ case 'r': goto yy277;
+ default: goto yy180;
+ }
+yy277: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy278;
+ }
+yy278:
+#line 134 "cmmap.re"
+{ RET(FOR); }
+#line 2854 "<stdout>"
+yy279: yych = *++YYCURSOR;
+ switch(yych){
+ case 'a': goto yy280;
+ default: goto yy180;
+ }
+yy280: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy281;
+ default: goto yy180;
+ }
+yy281: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy282;
+ }
+yy282:
+#line 133 "cmmap.re"
+{ RET(FLOAT); }
+#line 2932 "<stdout>"
+yy283: yych = *++YYCURSOR;
+ switch(yych){
+ case 's': goto yy294;
+ default: goto yy180;
+ }
+yy284: yych = *++YYCURSOR;
+ switch(yych){
+ case 'u': goto yy291;
+ default: goto yy180;
+ }
+yy285: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy286;
+ default: goto yy180;
+ }
+yy286: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy287;
+ default: goto yy180;
+ }
+yy287: yych = *++YYCURSOR;
+ switch(yych){
+ case 'r': goto yy288;
+ default: goto yy180;
+ }
+yy288: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy289;
+ default: goto yy180;
+ }
+yy289: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy290;
+ }
+yy290:
+#line 132 "cmmap.re"
+{ RET(EXTERN); }
+#line 3030 "<stdout>"
+yy291: yych = *++YYCURSOR;
+ switch(yych){
+ case 'm': goto yy292;
+ default: goto yy180;
+ }
+yy292: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy293;
+ }
+yy293:
+#line 131 "cmmap.re"
+{ RET(ENUM); }
+#line 3103 "<stdout>"
+yy294: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy295;
+ default: goto yy180;
+ }
+yy295: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy296;
+ }
+yy296:
+#line 130 "cmmap.re"
+{ RET(ELSE); }
+#line 3176 "<stdout>"
+yy297: yych = *++YYCURSOR;
+ switch(yych){
+ case 'f': goto yy305;
+ default: goto yy180;
+ }
+yy298: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy179;
+ case 'u': goto yy300;
+ default: goto yy299;
+ }
+yy299:
+#line 128 "cmmap.re"
+{ RET(DO); }
+#line 3248 "<stdout>"
+yy300: yych = *++YYCURSOR;
+ switch(yych){
+ case 'b': goto yy301;
+ default: goto yy180;
+ }
+yy301: yych = *++YYCURSOR;
+ switch(yych){
+ case 'l': goto yy302;
+ default: goto yy180;
+ }
+yy302: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy303;
+ default: goto yy180;
+ }
+yy303: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy304;
+ }
+yy304:
+#line 129 "cmmap.re"
+{ RET(DOUBLE); }
+#line 3331 "<stdout>"
+yy305: yych = *++YYCURSOR;
+ switch(yych){
+ case 'a': goto yy306;
+ default: goto yy180;
+ }
+yy306: yych = *++YYCURSOR;
+ switch(yych){
+ case 'u': goto yy307;
+ default: goto yy180;
+ }
+yy307: yych = *++YYCURSOR;
+ switch(yych){
+ case 'l': goto yy308;
+ default: goto yy180;
+ }
+yy308: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy309;
+ default: goto yy180;
+ }
+yy309: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy310;
+ }
+yy310:
+#line 127 "cmmap.re"
+{ RET(DEFAULT); }
+#line 3419 "<stdout>"
+yy311: yych = *++YYCURSOR;
+ switch(yych){
+ case 's': goto yy327;
+ default: goto yy180;
+ }
+yy312: yych = *++YYCURSOR;
+ switch(yych){
+ case 'a': goto yy324;
+ default: goto yy180;
+ }
+yy313: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy314;
+ default: goto yy180;
+ }
+yy314: yych = *++YYCURSOR;
+ switch(yych){
+ case 's': goto yy315;
+ case 't': goto yy316;
+ default: goto yy180;
+ }
+yy315: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy322;
+ default: goto yy180;
+ }
+yy316: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy317;
+ default: goto yy180;
+ }
+yy317: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy318;
+ default: goto yy180;
+ }
+yy318: yych = *++YYCURSOR;
+ switch(yych){
+ case 'u': goto yy319;
+ default: goto yy180;
+ }
+yy319: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy320;
+ default: goto yy180;
+ }
+yy320: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy321;
+ }
+yy321:
+#line 126 "cmmap.re"
+{ RET(CONTINUE); }
+#line 3533 "<stdout>"
+yy322: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy323;
+ }
+yy323:
+#line 125 "cmmap.re"
+{ RET(CONST); }
+#line 3601 "<stdout>"
+yy324: yych = *++YYCURSOR;
+ switch(yych){
+ case 'r': goto yy325;
+ default: goto yy180;
+ }
+yy325: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy326;
+ }
+yy326:
+#line 124 "cmmap.re"
+{ RET(CHAR); }
+#line 3674 "<stdout>"
+yy327: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy328;
+ default: goto yy180;
+ }
+yy328: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy329;
+ }
+yy329:
+#line 123 "cmmap.re"
+{ RET(CASE); }
+#line 3747 "<stdout>"
+yy330: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy331;
+ default: goto yy180;
+ }
+yy331: yych = *++YYCURSOR;
+ switch(yych){
+ case 'a': goto yy332;
+ default: goto yy180;
+ }
+yy332: yych = *++YYCURSOR;
+ switch(yych){
+ case 'k': goto yy333;
+ default: goto yy180;
+ }
+yy333: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy334;
+ }
+yy334:
+#line 122 "cmmap.re"
+{ RET(BREAK); }
+#line 3830 "<stdout>"
+yy335: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy336;
+ default: goto yy180;
+ }
+yy336: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy337;
+ default: goto yy180;
+ }
+yy337: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy179;
+ default: goto yy338;
+ }
+yy338:
+#line 121 "cmmap.re"
+{ RET(AUTO); }
+#line 3908 "<stdout>"
+yy339: ++YYCURSOR;
+ goto yy340;
+yy340:
+#line 172 "cmmap.re"
+{ RET(DIVEQ); }
+#line 3914 "<stdout>"
+yy341: ++YYCURSOR;
+ goto yy342;
+yy342:
+#line 119 "cmmap.re"
+{ goto comment; }
+#line 3920 "<stdout>"
+}
+#line 228 "cmmap.re"
+
+
+comment:
+
+#line 3924 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy343;
+yy344: ++YYCURSOR;
+yy343:
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy347;
+ case '*': goto yy345;
+ default: goto yy349;
+ }
+yy345: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '/': goto yy350;
+ default: goto yy346;
+ }
+yy346:
+#line 239 "cmmap.re"
+{ goto comment; }
+#line 3946 "<stdout>"
+yy347: ++YYCURSOR;
+ goto yy348;
+yy348:
+#line 234 "cmmap.re"
+{
+ if(cursor == s->eof) RET(EOI);
+ s->tok = s->pos = cursor; s->line++;
+ goto comment;
+ }
+#line 3956 "<stdout>"
+yy349: yych = *++YYCURSOR;
+ goto yy346;
+yy350: ++YYCURSOR;
+ goto yy351;
+yy351:
+#line 232 "cmmap.re"
+{ goto std; }
+#line 3964 "<stdout>"
+}
+#line 240 "cmmap.re"
+
+}
+
+#ifndef MAP_NORESERVE
+#define MAP_NORESERVE 0
+#endif
+
+main(){
+ Scanner in;
+ struct stat statbuf;
+ uchar *buf;
+ fstat(0, &statbuf);
+ buf = mmap(NULL, statbuf.st_size, PROT_READ, MAP_SHARED|MAP_NORESERVE,
+ 0, 0);
+ if(buf != (uchar*)(-1)){
+ int t;
+ in.lim = &(in.cur = buf)[statbuf.st_size];
+ in.pos = NULL;
+ in.eof = NULL;
+ while((t = scan(&in)) != EOI){
+/*
+ printf("%d\t%.*s\n", t, in.cur - in.tok, in.tok);
+ printf("%d\n", t);
+*/
+ }
+ munmap(buf, statbuf.st_size);
+ }
+}
--- /dev/null
+#include <stdlib.h>
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/mman.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 unint;
+typedef unsigned char uchar;
+
+#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 {
+ uchar *tok, *ptr, *cur, *pos, *lim, *eof;
+ unint line;
+} Scanner;
+
+uchar *fill(Scanner *s, uchar *cursor){
+ if(!s->eof){
+ unint cnt = s->lim - s->tok;
+ uchar *buf = malloc((cnt + 1)*sizeof(uchar));
+ memcpy(buf, s->tok, cnt);
+ cursor = &buf[cursor - s->tok];
+ s->pos = &buf[s->pos - s->tok];
+ s->ptr = &buf[s->ptr - s->tok];
+ s->lim = &buf[cnt];
+ s->eof = s->lim; *(s->eof)++ = '\n';
+ s->tok = buf;
+ }
+ return cursor;
+}
+
+int scan(Scanner *s){
+ uchar *cursor = s->cur;
+std:
+ s->tok = cursor;
+/*!re2c
+any = [\000-\377];
+O = [0-7];
+D = [0-9];
+L = [a-zA-Z_];
+H = [a-fA-F0-9];
+E = [Ee] [+-]? D+;
+FS = [fFlL];
+IS = [uUlL]*;
+ESC = [\\] ([abfnrtv?'"\\] | "x" H+ | O+);
+*/
+
+/*!re2c
+ "/*" { goto comment; }
+
+ "auto" { RET(AUTO); }
+ "break" { RET(BREAK); }
+ "case" { RET(CASE); }
+ "char" { RET(CHAR); }
+ "const" { RET(CONST); }
+ "continue" { RET(CONTINUE); }
+ "default" { RET(DEFAULT); }
+ "do" { RET(DO); }
+ "double" { RET(DOUBLE); }
+ "else" { RET(ELSE); }
+ "enum" { RET(ENUM); }
+ "extern" { RET(EXTERN); }
+ "float" { RET(FLOAT); }
+ "for" { RET(FOR); }
+ "goto" { RET(GOTO); }
+ "if" { RET(IF); }
+ "int" { RET(INT); }
+ "long" { RET(LONG); }
+ "register" { RET(REGISTER); }
+ "return" { RET(RETURN); }
+ "short" { RET(SHORT); }
+ "signed" { RET(SIGNED); }
+ "sizeof" { RET(SIZEOF); }
+ "static" { RET(STATIC); }
+ "struct" { RET(STRUCT); }
+ "switch" { RET(SWITCH); }
+ "typedef" { RET(TYPEDEF); }
+ "union" { RET(UNION); }
+ "unsigned" { RET(UNSIGNED); }
+ "void" { RET(VOID); }
+ "volatile" { RET(VOLATILE); }
+ "while" { RET(WHILE); }
+
+ L (L|D)* { RET(ID); }
+
+ ("0" [xX] H+ IS?) | ("0" D+ IS?) | (D+ IS?) |
+ (['] (ESC|any\[\n\\'])* ['])
+ { RET(ICON); }
+
+ (D+ E FS?) | (D* "." D+ E? FS?) | (D+ "." D* E? FS?)
+ { RET(FCON); }
+
+ (["] (ESC|any\[\n\\"])* ["])
+ { RET(SCON); }
+
+ "..." { RET(ELLIPSIS); }
+ ">>=" { RET(RSHIFTEQ); }
+ "<<=" { RET(LSHIFTEQ); }
+ "+=" { RET(ADDEQ); }
+ "-=" { RET(SUBEQ); }
+ "*=" { RET(MULEQ); }
+ "/=" { RET(DIVEQ); }
+ "%=" { RET(MODEQ); }
+ "&=" { RET(ANDEQ); }
+ "^=" { RET(XOREQ); }
+ "|=" { RET(OREQ); }
+ ">>" { RET(RSHIFT); }
+ "<<" { RET(LSHIFT); }
+ "++" { RET(INCR); }
+ "--" { RET(DECR); }
+ "->" { RET(DEREF); }
+ "&&" { RET(ANDAND); }
+ "||" { RET(OROR); }
+ "<=" { RET(LEQ); }
+ ">=" { RET(GEQ); }
+ "==" { RET(EQL); }
+ "!=" { RET(NEQ); }
+ ";" { RET(';'); }
+ "{" { RET('{'); }
+ "}" { RET('}'); }
+ "," { RET(','); }
+ ":" { RET(':'); }
+ "=" { RET('='); }
+ "(" { RET('('); }
+ ")" { RET(')'); }
+ "[" { RET('['); }
+ "]" { RET(']'); }
+ "." { RET('.'); }
+ "&" { RET('&'); }
+ "!" { RET('!'); }
+ "~" { RET('~'); }
+ "-" { RET('-'); }
+ "+" { RET('+'); }
+ "*" { RET('*'); }
+ "/" { RET('/'); }
+ "%" { RET('%'); }
+ "<" { RET('<'); }
+ ">" { RET('>'); }
+ "^" { RET('^'); }
+ "|" { RET('|'); }
+ "?" { RET('?'); }
+
+
+ [ \t\v\f]+ { goto std; }
+
+ "\n"
+ {
+ if(cursor == s->eof) RET(EOI);
+ s->pos = cursor; s->line++;
+ goto std;
+ }
+
+ any
+ {
+ printf("unexpected character: %c\n", *s->tok);
+ goto std;
+ }
+*/
+
+comment:
+/*!re2c
+ "*/" { goto std; }
+ "\n"
+ {
+ if(cursor == s->eof) RET(EOI);
+ s->tok = s->pos = cursor; s->line++;
+ goto comment;
+ }
+ any { goto comment; }
+*/
+}
+
+#ifndef MAP_NORESERVE
+#define MAP_NORESERVE 0
+#endif
+
+main(){
+ Scanner in;
+ struct stat statbuf;
+ uchar *buf;
+ fstat(0, &statbuf);
+ buf = mmap(NULL, statbuf.st_size, PROT_READ, MAP_SHARED|MAP_NORESERVE,
+ 0, 0);
+ if(buf != (uchar*)(-1)){
+ int t;
+ in.lim = &(in.cur = buf)[statbuf.st_size];
+ in.pos = NULL;
+ in.eof = NULL;
+ while((t = scan(&in)) != EOI){
+/*
+ printf("%d\t%.*s\n", t, in.cur - in.tok, in.tok);
+ printf("%d\n", t);
+*/
+ }
+ munmap(buf, statbuf.st_size);
+ }
+}
--- /dev/null
+
+#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 7 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy0;
+yy1: ++YYCURSOR;
+yy0:
+ if((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x09: case 0x0B:
+ case 0x0C: case ' ': goto yy58;
+ case 0x0A: 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 118 "<stdout>"
+yy4: ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy165;
+yy5:
+#line 138 "cnokw.re"
+{ RET(ID); }
+#line 124 "<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 135 "<stdout>"
+yy8: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy138;
+yy9: yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 0x0A: goto yy10;
+ default: goto yy128;
+ }
+yy10:
+#line 208 "cnokw.re"
+{
+ printf("unexpected character: %c\n", *s->tok);
+ goto std;
+ }
+#line 151 "<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 171 "<stdout>"
+yy13: yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 0x0A: 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 187 "<stdout>"
+yy16: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '<': goto yy95;
+ case '=': goto yy93;
+ default: goto yy17;
+ }
+yy17:
+#line 191 "cnokw.re"
+{ RET('<'); }
+#line 197 "<stdout>"
+yy18: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '+': goto yy89;
+ case '=': goto yy91;
+ default: goto yy19;
+ }
+yy19:
+#line 187 "cnokw.re"
+{ RET('+'); }
+#line 207 "<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 218 "<stdout>"
+yy22: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy81;
+ default: goto yy23;
+ }
+yy23:
+#line 188 "cnokw.re"
+{ RET('*'); }
+#line 227 "<stdout>"
+yy24: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy79;
+ default: goto yy25;
+ }
+yy25:
+#line 190 "cnokw.re"
+{ RET('%'); }
+#line 236 "<stdout>"
+yy26: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '&': goto yy75;
+ case '=': goto yy77;
+ default: goto yy27;
+ }
+yy27:
+#line 183 "cnokw.re"
+{ RET('&'); }
+#line 246 "<stdout>"
+yy28: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy73;
+ default: goto yy29;
+ }
+yy29:
+#line 193 "cnokw.re"
+{ RET('^'); }
+#line 255 "<stdout>"
+yy30: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy71;
+ case '|': goto yy69;
+ default: goto yy31;
+ }
+yy31:
+#line 194 "cnokw.re"
+{ RET('|'); }
+#line 265 "<stdout>"
+yy32: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy67;
+ default: goto yy33;
+ }
+yy33:
+#line 177 "cnokw.re"
+{ RET('='); }
+#line 274 "<stdout>"
+yy34: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy65;
+ default: goto yy35;
+ }
+yy35:
+#line 184 "cnokw.re"
+{ RET('!'); }
+#line 283 "<stdout>"
+yy36: ++YYCURSOR;
+ goto yy37;
+yy37:
+#line 172 "cnokw.re"
+{ RET(';'); }
+#line 289 "<stdout>"
+yy38: ++YYCURSOR;
+ goto yy39;
+yy39:
+#line 173 "cnokw.re"
+{ RET('{'); }
+#line 295 "<stdout>"
+yy40: ++YYCURSOR;
+ goto yy41;
+yy41:
+#line 174 "cnokw.re"
+{ RET('}'); }
+#line 301 "<stdout>"
+yy42: ++YYCURSOR;
+ goto yy43;
+yy43:
+#line 175 "cnokw.re"
+{ RET(','); }
+#line 307 "<stdout>"
+yy44: ++YYCURSOR;
+ goto yy45;
+yy45:
+#line 176 "cnokw.re"
+{ RET(':'); }
+#line 313 "<stdout>"
+yy46: ++YYCURSOR;
+ goto yy47;
+yy47:
+#line 178 "cnokw.re"
+{ RET('('); }
+#line 319 "<stdout>"
+yy48: ++YYCURSOR;
+ goto yy49;
+yy49:
+#line 179 "cnokw.re"
+{ RET(')'); }
+#line 325 "<stdout>"
+yy50: ++YYCURSOR;
+ goto yy51;
+yy51:
+#line 180 "cnokw.re"
+{ RET('['); }
+#line 331 "<stdout>"
+yy52: ++YYCURSOR;
+ goto yy53;
+yy53:
+#line 181 "cnokw.re"
+{ RET(']'); }
+#line 337 "<stdout>"
+yy54: ++YYCURSOR;
+ goto yy55;
+yy55:
+#line 185 "cnokw.re"
+{ RET('~'); }
+#line 343 "<stdout>"
+yy56: ++YYCURSOR;
+ goto yy57;
+yy57:
+#line 195 "cnokw.re"
+{ RET('?'); }
+#line 349 "<stdout>"
+yy58: ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy64;
+yy59:
+#line 198 "cnokw.re"
+{ goto std; }
+#line 355 "<stdout>"
+yy60: ++YYCURSOR;
+ goto yy61;
+yy61:
+#line 201 "cnokw.re"
+{
+ if(cursor == s->eof) RET(EOI);
+ s->pos = cursor; s->line++;
+ goto std;
+ }
+#line 365 "<stdout>"
+yy62: yych = *++YYCURSOR;
+ goto yy10;
+yy63: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy64;
+yy64: switch(yych){
+ case 0x09: case 0x0B:
+ case 0x0C: case ' ': goto yy63;
+ default: goto yy59;
+ }
+yy65: ++YYCURSOR;
+ goto yy66;
+yy66:
+#line 171 "cnokw.re"
+{ RET(NEQ); }
+#line 383 "<stdout>"
+yy67: ++YYCURSOR;
+ goto yy68;
+yy68:
+#line 170 "cnokw.re"
+{ RET(EQL); }
+#line 389 "<stdout>"
+yy69: ++YYCURSOR;
+ goto yy70;
+yy70:
+#line 167 "cnokw.re"
+{ RET(OROR); }
+#line 395 "<stdout>"
+yy71: ++YYCURSOR;
+ goto yy72;
+yy72:
+#line 160 "cnokw.re"
+{ RET(OREQ); }
+#line 401 "<stdout>"
+yy73: ++YYCURSOR;
+ goto yy74;
+yy74:
+#line 159 "cnokw.re"
+{ RET(XOREQ); }
+#line 407 "<stdout>"
+yy75: ++YYCURSOR;
+ goto yy76;
+yy76:
+#line 166 "cnokw.re"
+{ RET(ANDAND); }
+#line 413 "<stdout>"
+yy77: ++YYCURSOR;
+ goto yy78;
+yy78:
+#line 158 "cnokw.re"
+{ RET(ANDEQ); }
+#line 419 "<stdout>"
+yy79: ++YYCURSOR;
+ goto yy80;
+yy80:
+#line 157 "cnokw.re"
+{ RET(MODEQ); }
+#line 425 "<stdout>"
+yy81: ++YYCURSOR;
+ goto yy82;
+yy82:
+#line 155 "cnokw.re"
+{ RET(MULEQ); }
+#line 431 "<stdout>"
+yy83: ++YYCURSOR;
+ goto yy84;
+yy84:
+#line 165 "cnokw.re"
+{ RET(DEREF); }
+#line 437 "<stdout>"
+yy85: ++YYCURSOR;
+ goto yy86;
+yy86:
+#line 164 "cnokw.re"
+{ RET(DECR); }
+#line 443 "<stdout>"
+yy87: ++YYCURSOR;
+ goto yy88;
+yy88:
+#line 154 "cnokw.re"
+{ RET(SUBEQ); }
+#line 449 "<stdout>"
+yy89: ++YYCURSOR;
+ goto yy90;
+yy90:
+#line 163 "cnokw.re"
+{ RET(INCR); }
+#line 455 "<stdout>"
+yy91: ++YYCURSOR;
+ goto yy92;
+yy92:
+#line 153 "cnokw.re"
+{ RET(ADDEQ); }
+#line 461 "<stdout>"
+yy93: ++YYCURSOR;
+ goto yy94;
+yy94:
+#line 168 "cnokw.re"
+{ RET(LEQ); }
+#line 467 "<stdout>"
+yy95: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy97;
+ default: goto yy96;
+ }
+yy96:
+#line 162 "cnokw.re"
+{ RET(LSHIFT); }
+#line 476 "<stdout>"
+yy97: ++YYCURSOR;
+ goto yy98;
+yy98:
+#line 152 "cnokw.re"
+{ RET(LSHIFTEQ); }
+#line 482 "<stdout>"
+yy99: ++YYCURSOR;
+ goto yy100;
+yy100:
+#line 169 "cnokw.re"
+{ RET(GEQ); }
+#line 488 "<stdout>"
+yy101: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy103;
+ default: goto yy102;
+ }
+yy102:
+#line 161 "cnokw.re"
+{ RET(RSHIFT); }
+#line 497 "<stdout>"
+yy103: ++YYCURSOR;
+ goto yy104;
+yy104:
+#line 151 "cnokw.re"
+{ RET(RSHIFTEQ); }
+#line 503 "<stdout>"
+yy105: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy106;
+yy106: switch(yych){
+ case 0x0A: goto yy107;
+ case '"': goto yy109;
+ case '\\': goto yy108;
+ default: goto yy105;
+ }
+yy107: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy7;
+ case 3: goto yy119;
+ case 2: goto yy12;
+ case 1: goto yy10;
+ }
+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;
+ goto yy110;
+yy110:
+#line 148 "cnokw.re"
+{ RET(SCON); }
+#line 545 "<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;
+ goto yy113;
+yy113: switch(yych){
+ case 0x0A: 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;
+ goto yy115;
+yy115: switch(yych){
+ case 0x0A: 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) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy118;
+yy118: 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 651 "<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;
+ goto yy124;
+yy124: 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;
+ goto yy126;
+yy126:
+#line 150 "cnokw.re"
+{ RET(ELLIPSIS); }
+#line 707 "<stdout>"
+yy127: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy128;
+yy128: switch(yych){
+ case 0x0A: 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;
+ goto yy133;
+yy133: switch(yych){
+ case 0x0A: 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;
+ goto yy135;
+yy135: switch(yych){
+ case 0x0A: 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) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ goto yy138;
+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;
+ goto yy141;
+yy141: 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;
+ goto yy144;
+yy144: 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) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy146;
+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;
+ goto yy150;
+yy150: 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;
+ goto yy154;
+yy154: 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;
+ goto yy156;
+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;
+ goto yy159;
+yy159: 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;
+ goto yy161;
+yy161: switch(yych){
+ case 'L': case 'U': case 'l': case 'u': goto yy160;
+ default: goto yy7;
+ }
+yy162: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy163;
+yy163: switch(yych){
+ case 'L': case 'U': case 'l': case 'u': goto yy162;
+ default: goto yy7;
+ }
+yy164: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy165;
+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;
+ goto yy167;
+yy167:
+#line 156 "cnokw.re"
+{ RET(DIVEQ); }
+#line 1181 "<stdout>"
+yy168: ++YYCURSOR;
+ goto yy169;
+yy169:
+#line 136 "cnokw.re"
+{ goto comment; }
+#line 1187 "<stdout>"
+}
+#line 212 "cnokw.re"
+
+
+comment:
+
+#line 1191 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy170;
+yy171: ++YYCURSOR;
+yy170:
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x0A: 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 1213 "<stdout>"
+yy174: ++YYCURSOR;
+ goto yy175;
+yy175:
+#line 218 "cnokw.re"
+{
+ if(cursor == s->eof) RET(EOI);
+ s->tok = s->pos = cursor; s->line++;
+ goto comment;
+ }
+#line 1223 "<stdout>"
+yy176: yych = *++YYCURSOR;
+ goto yy173;
+yy177: ++YYCURSOR;
+ goto yy178;
+yy178:
+#line 216 "cnokw.re"
+{ goto std; }
+#line 1231 "<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);
+}
--- /dev/null
+#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;
+/*!re2c
+any = [\000-\377];
+O = [0-7];
+D = [0-9];
+L = [a-zA-Z_];
+H = [a-fA-F0-9];
+E = [Ee] [+-]? D+;
+FS = [fFlL];
+IS = [uUlL]*;
+ESC = [\\] ([abfnrtv?'"\\] | "x" H+ | O+);
+*/
+
+/*!re2c
+ "/*" { goto comment; }
+
+ L (L|D)* { RET(ID); }
+
+ ("0" [xX] H+ IS?) | ("0" D+ IS?) | (D+ IS?) |
+ (['] (ESC|any\[\n\\'])* ['])
+ { RET(ICON); }
+
+ (D+ E FS?) | (D* "." D+ E? FS?) | (D+ "." D* E? FS?)
+ { RET(FCON); }
+
+ (["] (ESC|any\[\n\\"])* ["])
+ { RET(SCON); }
+
+ "..." { RET(ELLIPSIS); }
+ ">>=" { RET(RSHIFTEQ); }
+ "<<=" { RET(LSHIFTEQ); }
+ "+=" { RET(ADDEQ); }
+ "-=" { RET(SUBEQ); }
+ "*=" { RET(MULEQ); }
+ "/=" { RET(DIVEQ); }
+ "%=" { RET(MODEQ); }
+ "&=" { RET(ANDEQ); }
+ "^=" { RET(XOREQ); }
+ "|=" { RET(OREQ); }
+ ">>" { RET(RSHIFT); }
+ "<<" { RET(LSHIFT); }
+ "++" { RET(INCR); }
+ "--" { RET(DECR); }
+ "->" { RET(DEREF); }
+ "&&" { RET(ANDAND); }
+ "||" { RET(OROR); }
+ "<=" { RET(LEQ); }
+ ">=" { RET(GEQ); }
+ "==" { RET(EQL); }
+ "!=" { RET(NEQ); }
+ ";" { RET(';'); }
+ "{" { RET('{'); }
+ "}" { RET('}'); }
+ "," { RET(','); }
+ ":" { RET(':'); }
+ "=" { RET('='); }
+ "(" { RET('('); }
+ ")" { RET(')'); }
+ "[" { RET('['); }
+ "]" { RET(']'); }
+ "." { RET('.'); }
+ "&" { RET('&'); }
+ "!" { RET('!'); }
+ "~" { RET('~'); }
+ "-" { RET('-'); }
+ "+" { RET('+'); }
+ "*" { RET('*'); }
+ "/" { RET('/'); }
+ "%" { RET('%'); }
+ "<" { RET('<'); }
+ ">" { RET('>'); }
+ "^" { RET('^'); }
+ "|" { RET('|'); }
+ "?" { RET('?'); }
+
+
+ [ \t\v\f]+ { goto std; }
+
+ "\n"
+ {
+ if(cursor == s->eof) RET(EOI);
+ s->pos = cursor; s->line++;
+ goto std;
+ }
+
+ any
+ {
+ printf("unexpected character: %c\n", *s->tok);
+ goto std;
+ }
+*/
+
+comment:
+/*!re2c
+ "*/" { goto std; }
+ "\n"
+ {
+ if(cursor == s->eof) RET(EOI);
+ s->tok = s->pos = cursor; s->line++;
+ goto comment;
+ }
+ any { goto comment; }
+*/
+}
+
+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);
+}
--- /dev/null
+
+#line 1 "cunroll.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 135 "cunroll.re"
+
+
+
+#line 7 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy0;
+yy1: ++YYCURSOR;
+yy0:
+ if((YYLIMIT - YYCURSOR) < 9) YYFILL(9);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x09: case 0x0B:
+ case 0x0C: case ' ': goto yy58;
+ case 0x0A: 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 yy183;
+ case '=': goto yy181;
+ default: goto yy3;
+ }
+yy3:
+#line 200 "cunroll.re"
+{ RET('/'); }
+#line 118 "<stdout>"
+yy4: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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;
+ }
+yy5:
+#line 141 "cunroll.re"
+{ RET(ID); }
+#line 186 "<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 153 "cunroll.re"
+{ RET(ICON); }
+#line 197 "<stdout>"
+yy8: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy138;
+yy9: yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 0x0A: goto yy10;
+ default: goto yy128;
+ }
+yy10:
+#line 219 "cunroll.re"
+{
+ printf("unexpected character: %c\n", *s->tok);
+ goto std;
+ }
+#line 213 "<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 193 "cunroll.re"
+{ RET('.'); }
+#line 233 "<stdout>"
+yy13: yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 0x0A: goto yy10;
+ default: goto yy106;
+ }
+yy14: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy99;
+ case '>': goto yy101;
+ default: goto yy15;
+ }
+yy15:
+#line 203 "cunroll.re"
+{ RET('>'); }
+#line 249 "<stdout>"
+yy16: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '<': goto yy95;
+ case '=': goto yy93;
+ default: goto yy17;
+ }
+yy17:
+#line 202 "cunroll.re"
+{ RET('<'); }
+#line 259 "<stdout>"
+yy18: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '+': goto yy89;
+ case '=': goto yy91;
+ default: goto yy19;
+ }
+yy19:
+#line 198 "cunroll.re"
+{ RET('+'); }
+#line 269 "<stdout>"
+yy20: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '-': goto yy85;
+ case '=': goto yy87;
+ case '>': goto yy83;
+ default: goto yy21;
+ }
+yy21:
+#line 197 "cunroll.re"
+{ RET('-'); }
+#line 280 "<stdout>"
+yy22: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy81;
+ default: goto yy23;
+ }
+yy23:
+#line 199 "cunroll.re"
+{ RET('*'); }
+#line 289 "<stdout>"
+yy24: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy79;
+ default: goto yy25;
+ }
+yy25:
+#line 201 "cunroll.re"
+{ RET('%'); }
+#line 298 "<stdout>"
+yy26: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '&': goto yy75;
+ case '=': goto yy77;
+ default: goto yy27;
+ }
+yy27:
+#line 194 "cunroll.re"
+{ RET('&'); }
+#line 308 "<stdout>"
+yy28: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy73;
+ default: goto yy29;
+ }
+yy29:
+#line 204 "cunroll.re"
+{ RET('^'); }
+#line 317 "<stdout>"
+yy30: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy71;
+ case '|': goto yy69;
+ default: goto yy31;
+ }
+yy31:
+#line 205 "cunroll.re"
+{ RET('|'); }
+#line 327 "<stdout>"
+yy32: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy67;
+ default: goto yy33;
+ }
+yy33:
+#line 188 "cunroll.re"
+{ RET('='); }
+#line 336 "<stdout>"
+yy34: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy65;
+ default: goto yy35;
+ }
+yy35:
+#line 195 "cunroll.re"
+{ RET('!'); }
+#line 345 "<stdout>"
+yy36: ++YYCURSOR;
+ goto yy37;
+yy37:
+#line 183 "cunroll.re"
+{ RET(';'); }
+#line 351 "<stdout>"
+yy38: ++YYCURSOR;
+ goto yy39;
+yy39:
+#line 184 "cunroll.re"
+{ RET('{'); }
+#line 357 "<stdout>"
+yy40: ++YYCURSOR;
+ goto yy41;
+yy41:
+#line 185 "cunroll.re"
+{ RET('}'); }
+#line 363 "<stdout>"
+yy42: ++YYCURSOR;
+ goto yy43;
+yy43:
+#line 186 "cunroll.re"
+{ RET(','); }
+#line 369 "<stdout>"
+yy44: ++YYCURSOR;
+ goto yy45;
+yy45:
+#line 187 "cunroll.re"
+{ RET(':'); }
+#line 375 "<stdout>"
+yy46: ++YYCURSOR;
+ goto yy47;
+yy47:
+#line 189 "cunroll.re"
+{ RET('('); }
+#line 381 "<stdout>"
+yy48: ++YYCURSOR;
+ goto yy49;
+yy49:
+#line 190 "cunroll.re"
+{ RET(')'); }
+#line 387 "<stdout>"
+yy50: ++YYCURSOR;
+ goto yy51;
+yy51:
+#line 191 "cunroll.re"
+{ RET('['); }
+#line 393 "<stdout>"
+yy52: ++YYCURSOR;
+ goto yy53;
+yy53:
+#line 192 "cunroll.re"
+{ RET(']'); }
+#line 399 "<stdout>"
+yy54: ++YYCURSOR;
+ goto yy55;
+yy55:
+#line 196 "cunroll.re"
+{ RET('~'); }
+#line 405 "<stdout>"
+yy56: ++YYCURSOR;
+ goto yy57;
+yy57:
+#line 206 "cunroll.re"
+{ RET('?'); }
+#line 411 "<stdout>"
+yy58: ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy64;
+yy59:
+#line 209 "cunroll.re"
+{ goto std; }
+#line 417 "<stdout>"
+yy60: ++YYCURSOR;
+ goto yy61;
+yy61:
+#line 212 "cunroll.re"
+{
+ if(cursor == s->eof) RET(EOI);
+ s->pos = cursor; s->line++;
+ goto std;
+ }
+#line 427 "<stdout>"
+yy62: yych = *++YYCURSOR;
+ goto yy10;
+yy63: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy64;
+yy64: switch(yych){
+ case 0x09: case 0x0B:
+ case 0x0C: case ' ': goto yy63;
+ default: goto yy59;
+ }
+yy65: ++YYCURSOR;
+ goto yy66;
+yy66:
+#line 182 "cunroll.re"
+{ RET(NEQ); }
+#line 445 "<stdout>"
+yy67: ++YYCURSOR;
+ goto yy68;
+yy68:
+#line 181 "cunroll.re"
+{ RET(EQL); }
+#line 451 "<stdout>"
+yy69: ++YYCURSOR;
+ goto yy70;
+yy70:
+#line 178 "cunroll.re"
+{ RET(OROR); }
+#line 457 "<stdout>"
+yy71: ++YYCURSOR;
+ goto yy72;
+yy72:
+#line 171 "cunroll.re"
+{ RET(OREQ); }
+#line 463 "<stdout>"
+yy73: ++YYCURSOR;
+ goto yy74;
+yy74:
+#line 170 "cunroll.re"
+{ RET(XOREQ); }
+#line 469 "<stdout>"
+yy75: ++YYCURSOR;
+ goto yy76;
+yy76:
+#line 177 "cunroll.re"
+{ RET(ANDAND); }
+#line 475 "<stdout>"
+yy77: ++YYCURSOR;
+ goto yy78;
+yy78:
+#line 169 "cunroll.re"
+{ RET(ANDEQ); }
+#line 481 "<stdout>"
+yy79: ++YYCURSOR;
+ goto yy80;
+yy80:
+#line 168 "cunroll.re"
+{ RET(MODEQ); }
+#line 487 "<stdout>"
+yy81: ++YYCURSOR;
+ goto yy82;
+yy82:
+#line 166 "cunroll.re"
+{ RET(MULEQ); }
+#line 493 "<stdout>"
+yy83: ++YYCURSOR;
+ goto yy84;
+yy84:
+#line 176 "cunroll.re"
+{ RET(DEREF); }
+#line 499 "<stdout>"
+yy85: ++YYCURSOR;
+ goto yy86;
+yy86:
+#line 175 "cunroll.re"
+{ RET(DECR); }
+#line 505 "<stdout>"
+yy87: ++YYCURSOR;
+ goto yy88;
+yy88:
+#line 165 "cunroll.re"
+{ RET(SUBEQ); }
+#line 511 "<stdout>"
+yy89: ++YYCURSOR;
+ goto yy90;
+yy90:
+#line 174 "cunroll.re"
+{ RET(INCR); }
+#line 517 "<stdout>"
+yy91: ++YYCURSOR;
+ goto yy92;
+yy92:
+#line 164 "cunroll.re"
+{ RET(ADDEQ); }
+#line 523 "<stdout>"
+yy93: ++YYCURSOR;
+ goto yy94;
+yy94:
+#line 179 "cunroll.re"
+{ RET(LEQ); }
+#line 529 "<stdout>"
+yy95: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy97;
+ default: goto yy96;
+ }
+yy96:
+#line 173 "cunroll.re"
+{ RET(LSHIFT); }
+#line 538 "<stdout>"
+yy97: ++YYCURSOR;
+ goto yy98;
+yy98:
+#line 163 "cunroll.re"
+{ RET(LSHIFTEQ); }
+#line 544 "<stdout>"
+yy99: ++YYCURSOR;
+ goto yy100;
+yy100:
+#line 180 "cunroll.re"
+{ RET(GEQ); }
+#line 550 "<stdout>"
+yy101: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy103;
+ default: goto yy102;
+ }
+yy102:
+#line 172 "cunroll.re"
+{ RET(RSHIFT); }
+#line 559 "<stdout>"
+yy103: ++YYCURSOR;
+ goto yy104;
+yy104:
+#line 162 "cunroll.re"
+{ RET(RSHIFTEQ); }
+#line 565 "<stdout>"
+yy105: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy106;
+yy106: switch(yych){
+ case 0x0A: goto yy107;
+ case '"': goto yy109;
+ case '\\': goto yy108;
+ default: goto yy105;
+ }
+yy107: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy7;
+ case 3: goto yy119;
+ case 2: goto yy12;
+ case 1: goto yy10;
+ }
+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;
+ goto yy110;
+yy110:
+#line 159 "cunroll.re"
+{ RET(SCON); }
+#line 607 "<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;
+ goto yy113;
+yy113: switch(yych){
+ case 0x0A: 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;
+ goto yy115;
+yy115: switch(yych){
+ case 0x0A: 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) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy118;
+yy118: 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 156 "cunroll.re"
+{ RET(FCON); }
+#line 713 "<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;
+ goto yy124;
+yy124: 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;
+ goto yy126;
+yy126:
+#line 161 "cunroll.re"
+{ RET(ELLIPSIS); }
+#line 769 "<stdout>"
+yy127: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy128;
+yy128: switch(yych){
+ case 0x0A: 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;
+ goto yy133;
+yy133: switch(yych){
+ case 0x0A: 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;
+ goto yy135;
+yy135: switch(yych){
+ case 0x0A: 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) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ goto yy138;
+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;
+ goto yy141;
+yy141: 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;
+ goto yy144;
+yy144: 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) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy146;
+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;
+ goto yy150;
+yy150: 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;
+ goto yy154;
+yy154: 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;
+ goto yy156;
+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;
+ goto yy159;
+yy159: 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;
+ goto yy161;
+yy161: switch(yych){
+ case 'L': case 'U': case 'l': case 'u': goto yy160;
+ default: goto yy7;
+ }
+yy162: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy163;
+yy163: switch(yych){
+ case 'L': case 'U': case 'l': case 'u': goto yy162;
+ default: goto yy7;
+ }
+yy164: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy166;
+ default: goto yy165;
+ }
+yy165:
+#line 142 "cunroll.re"
+{ RET(ID); }
+#line 1237 "<stdout>"
+yy166: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy168;
+ default: goto yy167;
+ }
+yy167:
+#line 143 "cunroll.re"
+{ RET(ID); }
+#line 1305 "<stdout>"
+yy168: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy170;
+ default: goto yy169;
+ }
+yy169:
+#line 144 "cunroll.re"
+{ RET(ID); }
+#line 1373 "<stdout>"
+yy170: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy172;
+ default: goto yy171;
+ }
+yy171:
+#line 145 "cunroll.re"
+{ RET(ID); }
+#line 1441 "<stdout>"
+yy172: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy174;
+ default: goto yy173;
+ }
+yy173:
+#line 146 "cunroll.re"
+{ RET(ID); }
+#line 1509 "<stdout>"
+yy174: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy176;
+ default: goto yy175;
+ }
+yy175:
+#line 147 "cunroll.re"
+{ RET(ID); }
+#line 1577 "<stdout>"
+yy176: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy178;
+ default: goto yy177;
+ }
+yy177:
+#line 148 "cunroll.re"
+{ RET(ID); }
+#line 1645 "<stdout>"
+yy178: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy179;
+yy179: 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 yy178;
+ default: goto yy180;
+ }
+yy180:
+#line 149 "cunroll.re"
+{ RET(ID); }
+#line 1717 "<stdout>"
+yy181: ++YYCURSOR;
+ goto yy182;
+yy182:
+#line 167 "cunroll.re"
+{ RET(DIVEQ); }
+#line 1723 "<stdout>"
+yy183: ++YYCURSOR;
+ goto yy184;
+yy184:
+#line 138 "cunroll.re"
+{ goto comment; }
+#line 1729 "<stdout>"
+}
+#line 223 "cunroll.re"
+
+
+comment:
+
+#line 1733 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy185;
+yy186: ++YYCURSOR;
+yy185:
+ if((YYLIMIT - YYCURSOR) < 8) YYFILL(8);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy189;
+ case '*': goto yy187;
+ case '/': goto yy193;
+ default: goto yy191;
+ }
+yy187: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '/': goto yy208;
+ default: goto yy188;
+ }
+yy188:
+#line 242 "cunroll.re"
+{ goto comment; }
+#line 1756 "<stdout>"
+yy189: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '*': case '/': goto yy190;
+ default: goto yy194;
+ }
+yy190:
+#line 229 "cunroll.re"
+{
+ if(cursor == s->eof) RET(EOI);
+ s->tok = s->pos = cursor; s->line++;
+ goto comment;
+ }
+#line 1769 "<stdout>"
+yy191: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '*': case '/': goto yy192;
+ default: goto yy194;
+ }
+yy192:
+#line 234 "cunroll.re"
+{ goto comment; }
+#line 1778 "<stdout>"
+yy193: yych = *++YYCURSOR;
+ goto yy188;
+yy194: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '*': case '/': goto yy195;
+ default: goto yy196;
+ }
+yy195:
+#line 235 "cunroll.re"
+{ goto comment; }
+#line 1789 "<stdout>"
+yy196: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '*': case '/': goto yy197;
+ default: goto yy198;
+ }
+yy197:
+#line 236 "cunroll.re"
+{ goto comment; }
+#line 1798 "<stdout>"
+yy198: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '*': case '/': goto yy199;
+ default: goto yy200;
+ }
+yy199:
+#line 237 "cunroll.re"
+{ goto comment; }
+#line 1807 "<stdout>"
+yy200: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '*': case '/': goto yy201;
+ default: goto yy202;
+ }
+yy201:
+#line 238 "cunroll.re"
+{ goto comment; }
+#line 1816 "<stdout>"
+yy202: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '*': case '/': goto yy203;
+ default: goto yy204;
+ }
+yy203:
+#line 239 "cunroll.re"
+{ goto comment; }
+#line 1825 "<stdout>"
+yy204: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '*': case '/': goto yy205;
+ default: goto yy206;
+ }
+yy205:
+#line 240 "cunroll.re"
+{ goto comment; }
+#line 1834 "<stdout>"
+yy206: ++YYCURSOR;
+ goto yy207;
+yy207:
+#line 241 "cunroll.re"
+{ goto comment; }
+#line 1840 "<stdout>"
+yy208: ++YYCURSOR;
+ goto yy209;
+yy209:
+#line 227 "cunroll.re"
+{ goto std; }
+#line 1846 "<stdout>"
+}
+#line 243 "cunroll.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);
+}
--- /dev/null
+#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;
+/*!re2c
+any = [\000-\377];
+O = [0-7];
+D = [0-9];
+L = [a-zA-Z_];
+I = L|D;
+H = [a-fA-F0-9];
+E = [Ee] [+-]? D+;
+FS = [fFlL];
+IS = [uUlL]*;
+ESC = [\\] ([abfnrtv?'"\\] | "x" H+ | O+);
+X = any\[*/];
+*/
+
+/*!re2c
+ "/*" { goto comment; }
+
+
+ L { RET(ID); }
+ L I { RET(ID); }
+ L I I { RET(ID); }
+ L I I I { RET(ID); }
+ L I I I I { RET(ID); }
+ L I I I I I { RET(ID); }
+ L I I I I I I { RET(ID); }
+ L I I I I I I I { RET(ID); }
+ L I* { RET(ID); }
+
+ ("0" [xX] H+ IS?) | ("0" D+ IS?) | (D+ IS?) |
+ (['] (ESC|any\[\n\\'])* ['])
+ { RET(ICON); }
+
+ (D+ E FS?) | (D* "." D+ E? FS?) | (D+ "." D* E? FS?)
+ { RET(FCON); }
+
+ (["] (ESC|any\[\n\\"])* ["])
+ { RET(SCON); }
+
+ "..." { RET(ELLIPSIS); }
+ ">>=" { RET(RSHIFTEQ); }
+ "<<=" { RET(LSHIFTEQ); }
+ "+=" { RET(ADDEQ); }
+ "-=" { RET(SUBEQ); }
+ "*=" { RET(MULEQ); }
+ "/=" { RET(DIVEQ); }
+ "%=" { RET(MODEQ); }
+ "&=" { RET(ANDEQ); }
+ "^=" { RET(XOREQ); }
+ "|=" { RET(OREQ); }
+ ">>" { RET(RSHIFT); }
+ "<<" { RET(LSHIFT); }
+ "++" { RET(INCR); }
+ "--" { RET(DECR); }
+ "->" { RET(DEREF); }
+ "&&" { RET(ANDAND); }
+ "||" { RET(OROR); }
+ "<=" { RET(LEQ); }
+ ">=" { RET(GEQ); }
+ "==" { RET(EQL); }
+ "!=" { RET(NEQ); }
+ ";" { RET(';'); }
+ "{" { RET('{'); }
+ "}" { RET('}'); }
+ "," { RET(','); }
+ ":" { RET(':'); }
+ "=" { RET('='); }
+ "(" { RET('('); }
+ ")" { RET(')'); }
+ "[" { RET('['); }
+ "]" { RET(']'); }
+ "." { RET('.'); }
+ "&" { RET('&'); }
+ "!" { RET('!'); }
+ "~" { RET('~'); }
+ "-" { RET('-'); }
+ "+" { RET('+'); }
+ "*" { RET('*'); }
+ "/" { RET('/'); }
+ "%" { RET('%'); }
+ "<" { RET('<'); }
+ ">" { RET('>'); }
+ "^" { RET('^'); }
+ "|" { RET('|'); }
+ "?" { RET('?'); }
+
+
+ [ \t\v\f]+ { goto std; }
+
+ "\n"
+ {
+ if(cursor == s->eof) RET(EOI);
+ s->pos = cursor; s->line++;
+ goto std;
+ }
+
+ any
+ {
+ printf("unexpected character: %c\n", *s->tok);
+ goto std;
+ }
+*/
+
+comment:
+/*!re2c
+ "*/" { goto std; }
+ "\n"
+ {
+ if(cursor == s->eof) RET(EOI);
+ s->tok = s->pos = cursor; s->line++;
+ goto comment;
+ }
+ X { goto comment; }
+ X X { goto comment; }
+ X X X { goto comment; }
+ X X X X { goto comment; }
+ X X X X X { goto comment; }
+ X X X X X X { goto comment; }
+ X X X X X X X { goto comment; }
+ X X X X X X X X { goto comment; }
+ any { goto comment; }
+*/
+}
+
+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);
+}
--- /dev/null
+
+#line 1 "input1.re"
+
+#line 6 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy0;
+yy1: ++YYCURSOR;
+yy0:
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 'a': goto yy2;
+ default: goto yy4;
+ }
+yy2: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 'b': goto yy5;
+ default: goto yy3;
+ }
+yy3:
+#line 4 "input1.re"
+{ return 0; }
+#line 28 "<stdout>"
+yy4: yych = *++YYCURSOR;
+ goto yy3;
+yy5: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy6;
+yy6: switch(yych){
+ case 'b': goto yy5;
+ case 'c': goto yy8;
+ default: goto yy7;
+ }
+yy7: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy3;
+ }
+yy8: yych = *++YYCURSOR;
+ switch(yych){
+ case 'c': goto yy9;
+ default: goto yy7;
+ }
+yy9: ++YYCURSOR;
+ goto yy10;
+yy10:
+#line 3 "input1.re"
+{ return 1; }
+#line 55 "<stdout>"
+}
+#line 6 "input1.re"
+
--- /dev/null
+/*!re2c
+
+[a][b]+ "cc" { return 1; }
+[\000-\377] { return 0; }
+
+*/
--- /dev/null
+
+#line 1 "input2.re"
+
+#line 6 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy0;
+yy1: ++YYCURSOR;
+yy0:
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 'a': goto yy3;
+ default: goto yy2;
+ }
+yy2:yy3: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy4;
+yy4: switch(yych){
+ case 'a': goto yy3;
+ case 'b': goto yy5;
+ default: goto yy2;
+ }
+yy5: yych = *++YYCURSOR;
+ switch(yych){
+ case 'b': goto yy6;
+ default: goto yy2;
+ }
+yy6: ++YYCURSOR;
+ goto yy7;
+yy7:
+#line 3 "input2.re"
+{ return 1; }
+#line 39 "<stdout>"
+}
+#line 5 "input2.re"
+
--- /dev/null
+/*!re2c
+
+[a]+ "bb" { return 1; }
+
+*/
--- /dev/null
+
+#line 1 "input3.re"
+
+#line 6 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy0;
+yy1: ++YYCURSOR;
+yy0:
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 'a': goto yy3;
+ default: goto yy2;
+ }
+yy2:yy3: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy4;
+yy4: switch(yych){
+ case 'a': goto yy3;
+ case 'b': goto yy5;
+ default: goto yy2;
+ }
+yy5: yych = *++YYCURSOR;
+ switch(yych){
+ case 'b': goto yy6;
+ default: goto yy2;
+ }
+yy6: ++YYCURSOR;
+ goto yy7;
+yy7:
+#line 3 "input3.re"
+{ return 1; }
+#line 39 "<stdout>"
+}
+#line 5 "input3.re"
+
--- /dev/null
+/*!re2c
+
+"a" [a]* "bb" { return 1; }
+
+*/
--- /dev/null
+
+#line 1 "modula.re"
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+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 {cursor = fill(s, cursor);}
+
+#define RETURN(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;
+ uint depth;
+std:
+ s->tok = cursor;
+#line 64 "modula.re"
+
+
+
+#line 7 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy0;
+yy1: ++YYCURSOR;
+yy0:
+ if((YYLIMIT - YYCURSOR) < 15) YYFILL(15);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x09: case ' ': goto yy73;
+ case 0x0A: goto yy75;
+ case '"': goto yy9;
+ case '#': goto yy10;
+ case '&': goto yy12;
+ case '\'': goto yy7;
+ case '(': goto yy2;
+ case ')': goto yy14;
+ case '*': goto yy16;
+ case '+': goto yy18;
+ case ',': goto yy20;
+ case '-': goto yy22;
+ case '.': goto yy24;
+ case '/': goto yy26;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7': goto yy4;
+ case '8':
+ case '9': goto yy6;
+ case ':': goto yy28;
+ case ';': goto yy30;
+ case '<': goto yy32;
+ case '=': goto yy34;
+ case '>': goto yy36;
+ case 'A': goto yy52;
+ case 'B': goto yy54;
+ case 'C': goto yy55;
+ case 'D': goto yy56;
+ case 'E': goto yy57;
+ case 'F': goto yy58;
+ case 'G':
+ case 'H': case 'J':
+ case 'K': case 'X':
+ case 'Y':
+ case 'Z': 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 yy72;
+ case 'I': goto yy59;
+ case 'L': goto yy60;
+ case 'M': goto yy61;
+ case 'N': goto yy62;
+ case 'O': goto yy63;
+ case 'P': goto yy64;
+ case 'Q': goto yy65;
+ case 'R': goto yy66;
+ case 'S': goto yy67;
+ case 'T': goto yy68;
+ case 'U': goto yy69;
+ case 'V': goto yy70;
+ case 'W': goto yy71;
+ case '[': goto yy38;
+ case ']': goto yy40;
+ case '^': goto yy42;
+ case '{': goto yy44;
+ case '|': goto yy46;
+ case '}': goto yy48;
+ case '~': goto yy50;
+ default: goto yy77;
+ }
+yy2: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '*': goto yy297;
+ default: goto yy3;
+ }
+yy3:
+#line 79 "modula.re"
+{RETURN(9);}
+#line 112 "<stdout>"
+yy4: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy292;
+yy5:
+#line 69 "modula.re"
+{RETURN(1);}
+#line 119 "<stdout>"
+yy6: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy278;
+yy7: yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 0x0A: goto yy8;
+ default: goto yy274;
+ }
+yy8:
+#line 158 "modula.re"
+{
+ printf("unexpected character: %c\n", *s->tok);
+ goto std;
+ }
+#line 135 "<stdout>"
+yy9: yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 0x0A: goto yy8;
+ default: goto yy269;
+ }
+yy10: ++YYCURSOR;
+ goto yy11;
+yy11:
+#line 77 "modula.re"
+{RETURN(7);}
+#line 147 "<stdout>"
+yy12: ++YYCURSOR;
+ goto yy13;
+yy13:
+#line 78 "modula.re"
+{RETURN(8);}
+#line 153 "<stdout>"
+yy14: ++YYCURSOR;
+ goto yy15;
+yy15:
+#line 80 "modula.re"
+{RETURN(10);}
+#line 159 "<stdout>"
+yy16: ++YYCURSOR;
+ goto yy17;
+yy17:
+#line 81 "modula.re"
+{RETURN(11);}
+#line 165 "<stdout>"
+yy18: ++YYCURSOR;
+ goto yy19;
+yy19:
+#line 82 "modula.re"
+{RETURN(12);}
+#line 171 "<stdout>"
+yy20: ++YYCURSOR;
+ goto yy21;
+yy21:
+#line 83 "modula.re"
+{RETURN(13);}
+#line 177 "<stdout>"
+yy22: ++YYCURSOR;
+ goto yy23;
+yy23:
+#line 84 "modula.re"
+{RETURN(14);}
+#line 183 "<stdout>"
+yy24: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '.': goto yy266;
+ default: goto yy25;
+ }
+yy25:
+#line 85 "modula.re"
+{RETURN(15);}
+#line 192 "<stdout>"
+yy26: ++YYCURSOR;
+ goto yy27;
+yy27:
+#line 87 "modula.re"
+{RETURN(17);}
+#line 198 "<stdout>"
+yy28: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy264;
+ default: goto yy29;
+ }
+yy29:
+#line 88 "modula.re"
+{RETURN(18);}
+#line 207 "<stdout>"
+yy30: ++YYCURSOR;
+ goto yy31;
+yy31:
+#line 90 "modula.re"
+{RETURN(20);}
+#line 213 "<stdout>"
+yy32: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy262;
+ case '>': goto yy260;
+ default: goto yy33;
+ }
+yy33:
+#line 91 "modula.re"
+{RETURN(21);}
+#line 223 "<stdout>"
+yy34: ++YYCURSOR;
+ goto yy35;
+yy35:
+#line 94 "modula.re"
+{RETURN(24);}
+#line 229 "<stdout>"
+yy36: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '=': goto yy258;
+ default: goto yy37;
+ }
+yy37:
+#line 95 "modula.re"
+{RETURN(25);}
+#line 238 "<stdout>"
+yy38: ++YYCURSOR;
+ goto yy39;
+yy39:
+#line 97 "modula.re"
+{RETURN(27);}
+#line 244 "<stdout>"
+yy40: ++YYCURSOR;
+ goto yy41;
+yy41:
+#line 98 "modula.re"
+{RETURN(28);}
+#line 250 "<stdout>"
+yy42: ++YYCURSOR;
+ goto yy43;
+yy43:
+#line 99 "modula.re"
+{RETURN(29);}
+#line 256 "<stdout>"
+yy44: ++YYCURSOR;
+ goto yy45;
+yy45:
+#line 100 "modula.re"
+{RETURN(30);}
+#line 262 "<stdout>"
+yy46: ++YYCURSOR;
+ goto yy47;
+yy47:
+#line 101 "modula.re"
+{RETURN(31);}
+#line 268 "<stdout>"
+yy48: ++YYCURSOR;
+ goto yy49;
+yy49:
+#line 102 "modula.re"
+{RETURN(32);}
+#line 274 "<stdout>"
+yy50: ++YYCURSOR;
+ goto yy51;
+yy51:
+#line 103 "modula.re"
+{RETURN(33);}
+#line 280 "<stdout>"
+yy52: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case 'N': goto yy250;
+ case 'R': goto yy251;
+ default: goto yy81;
+ }
+yy53:
+#line 146 "modula.re"
+{RETURN(74);}
+#line 290 "<stdout>"
+yy54: yych = *++YYCURSOR;
+ switch(yych){
+ case 'E': goto yy243;
+ case 'Y': goto yy244;
+ default: goto yy81;
+ }
+yy55: yych = *++YYCURSOR;
+ switch(yych){
+ case 'A': goto yy234;
+ case 'O': goto yy235;
+ default: goto yy81;
+ }
+yy56: yych = *++YYCURSOR;
+ switch(yych){
+ case 'E': goto yy219;
+ case 'I': goto yy220;
+ case 'O': goto yy221;
+ default: goto yy81;
+ }
+yy57: yych = *++YYCURSOR;
+ switch(yych){
+ case 'L': goto yy200;
+ case 'N': goto yy201;
+ case 'X': goto yy202;
+ default: goto yy81;
+ }
+yy58: yych = *++YYCURSOR;
+ switch(yych){
+ case 'O': goto yy193;
+ case 'R': goto yy194;
+ default: goto yy81;
+ }
+yy59: yych = *++YYCURSOR;
+ switch(yych){
+ case 'F': goto yy171;
+ case 'M': goto yy173;
+ case 'N': goto yy174;
+ default: goto yy81;
+ }
+yy60: yych = *++YYCURSOR;
+ switch(yych){
+ case 'O': goto yy167;
+ default: goto yy81;
+ }
+yy61: yych = *++YYCURSOR;
+ switch(yych){
+ case 'O': goto yy160;
+ default: goto yy81;
+ }
+yy62: yych = *++YYCURSOR;
+ switch(yych){
+ case 'O': goto yy157;
+ default: goto yy81;
+ }
+yy63: yych = *++YYCURSOR;
+ switch(yych){
+ case 'F': goto yy153;
+ case 'R': goto yy155;
+ default: goto yy81;
+ }
+yy64: yych = *++YYCURSOR;
+ switch(yych){
+ case 'O': goto yy137;
+ case 'R': goto yy138;
+ default: goto yy81;
+ }
+yy65: yych = *++YYCURSOR;
+ switch(yych){
+ case 'U': goto yy128;
+ default: goto yy81;
+ }
+yy66: yych = *++YYCURSOR;
+ switch(yych){
+ case 'E': goto yy112;
+ default: goto yy81;
+ }
+yy67: yych = *++YYCURSOR;
+ switch(yych){
+ case 'E': goto yy109;
+ default: goto yy81;
+ }
+yy68: yych = *++YYCURSOR;
+ switch(yych){
+ case 'H': goto yy99;
+ case 'O': goto yy100;
+ case 'Y': goto yy102;
+ default: goto yy81;
+ }
+yy69: yych = *++YYCURSOR;
+ switch(yych){
+ case 'N': goto yy94;
+ default: goto yy81;
+ }
+yy70: yych = *++YYCURSOR;
+ switch(yych){
+ case 'A': goto yy91;
+ default: goto yy81;
+ }
+yy71: yych = *++YYCURSOR;
+ switch(yych){
+ case 'H': goto yy82;
+ case 'I': goto yy83;
+ default: goto yy81;
+ }
+yy72: yych = *++YYCURSOR;
+ goto yy81;
+yy73: ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy79;
+yy74:
+#line 148 "modula.re"
+{ goto std; }
+#line 402 "<stdout>"
+yy75: ++YYCURSOR;
+ goto yy76;
+yy76:
+#line 151 "modula.re"
+{
+ if(cursor == s->eof) RETURN(0);
+ s->pos = cursor; s->line++;
+ goto std;
+ }
+#line 412 "<stdout>"
+yy77: yych = *++YYCURSOR;
+ goto yy8;
+yy78: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy79;
+yy79: switch(yych){
+ case 0x09: case ' ': goto yy78;
+ default: goto yy74;
+ }
+yy80: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy81;
+yy81: 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 '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 yy80;
+ default: goto yy53;
+ }
+yy82: yych = *++YYCURSOR;
+ switch(yych){
+ case 'I': goto yy87;
+ default: goto yy81;
+ }
+yy83: yych = *++YYCURSOR;
+ switch(yych){
+ case 'T': goto yy84;
+ default: goto yy81;
+ }
+yy84: yych = *++YYCURSOR;
+ switch(yych){
+ case 'H': goto yy85;
+ default: goto yy81;
+ }
+yy85: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy86;
+ }
+yy86:
+#line 144 "modula.re"
+{RETURN(73);}
+#line 574 "<stdout>"
+yy87: yych = *++YYCURSOR;
+ switch(yych){
+ case 'L': goto yy88;
+ default: goto yy81;
+ }
+yy88: yych = *++YYCURSOR;
+ switch(yych){
+ case 'E': goto yy89;
+ default: goto yy81;
+ }
+yy89: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy90;
+ }
+yy90:
+#line 143 "modula.re"
+{RETURN(72);}
+#line 652 "<stdout>"
+yy91: yych = *++YYCURSOR;
+ switch(yych){
+ case 'R': goto yy92;
+ default: goto yy81;
+ }
+yy92: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy93;
+ }
+yy93:
+#line 142 "modula.re"
+{RETURN(71);}
+#line 725 "<stdout>"
+yy94: yych = *++YYCURSOR;
+ switch(yych){
+ case 'T': goto yy95;
+ default: goto yy81;
+ }
+yy95: yych = *++YYCURSOR;
+ switch(yych){
+ case 'I': goto yy96;
+ default: goto yy81;
+ }
+yy96: yych = *++YYCURSOR;
+ switch(yych){
+ case 'L': goto yy97;
+ default: goto yy81;
+ }
+yy97: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy98;
+ }
+yy98:
+#line 141 "modula.re"
+{RETURN(70);}
+#line 808 "<stdout>"
+yy99: yych = *++YYCURSOR;
+ switch(yych){
+ case 'E': goto yy106;
+ default: goto yy81;
+ }
+yy100: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy101;
+ }
+yy101:
+#line 139 "modula.re"
+{RETURN(68);}
+#line 881 "<stdout>"
+yy102: yych = *++YYCURSOR;
+ switch(yych){
+ case 'P': goto yy103;
+ default: goto yy81;
+ }
+yy103: yych = *++YYCURSOR;
+ switch(yych){
+ case 'E': goto yy104;
+ default: goto yy81;
+ }
+yy104: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy105;
+ }
+yy105:
+#line 140 "modula.re"
+{RETURN(69);}
+#line 959 "<stdout>"
+yy106: yych = *++YYCURSOR;
+ switch(yych){
+ case 'N': goto yy107;
+ default: goto yy81;
+ }
+yy107: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy108;
+ }
+yy108:
+#line 138 "modula.re"
+{RETURN(67);}
+#line 1032 "<stdout>"
+yy109: yych = *++YYCURSOR;
+ switch(yych){
+ case 'T': goto yy110;
+ default: goto yy81;
+ }
+yy110: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy111;
+ }
+yy111:
+#line 137 "modula.re"
+{RETURN(66);}
+#line 1105 "<stdout>"
+yy112: yych = *++YYCURSOR;
+ switch(yych){
+ case 'C': goto yy113;
+ case 'P': goto yy114;
+ case 'T': goto yy115;
+ default: goto yy81;
+ }
+yy113: yych = *++YYCURSOR;
+ switch(yych){
+ case 'O': goto yy124;
+ default: goto yy81;
+ }
+yy114: yych = *++YYCURSOR;
+ switch(yych){
+ case 'E': goto yy120;
+ default: goto yy81;
+ }
+yy115: yych = *++YYCURSOR;
+ switch(yych){
+ case 'U': goto yy116;
+ default: goto yy81;
+ }
+yy116: yych = *++YYCURSOR;
+ switch(yych){
+ case 'R': goto yy117;
+ default: goto yy81;
+ }
+yy117: yych = *++YYCURSOR;
+ switch(yych){
+ case 'N': goto yy118;
+ default: goto yy81;
+ }
+yy118: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy119;
+ }
+yy119:
+#line 136 "modula.re"
+{RETURN(65);}
+#line 1205 "<stdout>"
+yy120: yych = *++YYCURSOR;
+ switch(yych){
+ case 'A': goto yy121;
+ default: goto yy81;
+ }
+yy121: yych = *++YYCURSOR;
+ switch(yych){
+ case 'T': goto yy122;
+ default: goto yy81;
+ }
+yy122: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy123;
+ }
+yy123:
+#line 135 "modula.re"
+{RETURN(64);}
+#line 1283 "<stdout>"
+yy124: yych = *++YYCURSOR;
+ switch(yych){
+ case 'R': goto yy125;
+ default: goto yy81;
+ }
+yy125: yych = *++YYCURSOR;
+ switch(yych){
+ case 'D': goto yy126;
+ default: goto yy81;
+ }
+yy126: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy127;
+ }
+yy127:
+#line 134 "modula.re"
+{RETURN(63);}
+#line 1361 "<stdout>"
+yy128: yych = *++YYCURSOR;
+ switch(yych){
+ case 'A': goto yy129;
+ default: goto yy81;
+ }
+yy129: yych = *++YYCURSOR;
+ switch(yych){
+ case 'L': goto yy130;
+ default: goto yy81;
+ }
+yy130: yych = *++YYCURSOR;
+ switch(yych){
+ case 'I': goto yy131;
+ default: goto yy81;
+ }
+yy131: yych = *++YYCURSOR;
+ switch(yych){
+ case 'F': goto yy132;
+ default: goto yy81;
+ }
+yy132: yych = *++YYCURSOR;
+ switch(yych){
+ case 'I': goto yy133;
+ default: goto yy81;
+ }
+yy133: yych = *++YYCURSOR;
+ switch(yych){
+ case 'E': goto yy134;
+ default: goto yy81;
+ }
+yy134: yych = *++YYCURSOR;
+ switch(yych){
+ case 'D': goto yy135;
+ default: goto yy81;
+ }
+yy135: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy136;
+ }
+yy136:
+#line 133 "modula.re"
+{RETURN(62);}
+#line 1464 "<stdout>"
+yy137: yych = *++YYCURSOR;
+ switch(yych){
+ case 'I': goto yy147;
+ default: goto yy81;
+ }
+yy138: yych = *++YYCURSOR;
+ switch(yych){
+ case 'O': goto yy139;
+ default: goto yy81;
+ }
+yy139: yych = *++YYCURSOR;
+ switch(yych){
+ case 'C': goto yy140;
+ default: goto yy81;
+ }
+yy140: yych = *++YYCURSOR;
+ switch(yych){
+ case 'E': goto yy141;
+ default: goto yy81;
+ }
+yy141: yych = *++YYCURSOR;
+ switch(yych){
+ case 'D': goto yy142;
+ default: goto yy81;
+ }
+yy142: yych = *++YYCURSOR;
+ switch(yych){
+ case 'U': goto yy143;
+ default: goto yy81;
+ }
+yy143: yych = *++YYCURSOR;
+ switch(yych){
+ case 'R': goto yy144;
+ default: goto yy81;
+ }
+yy144: yych = *++YYCURSOR;
+ switch(yych){
+ case 'E': goto yy145;
+ default: goto yy81;
+ }
+yy145: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy146;
+ }
+yy146:
+#line 132 "modula.re"
+{RETURN(61);}
+#line 1572 "<stdout>"
+yy147: yych = *++YYCURSOR;
+ switch(yych){
+ case 'N': goto yy148;
+ default: goto yy81;
+ }
+yy148: yych = *++YYCURSOR;
+ switch(yych){
+ case 'T': goto yy149;
+ default: goto yy81;
+ }
+yy149: yych = *++YYCURSOR;
+ switch(yych){
+ case 'E': goto yy150;
+ default: goto yy81;
+ }
+yy150: yych = *++YYCURSOR;
+ switch(yych){
+ case 'R': goto yy151;
+ default: goto yy81;
+ }
+yy151: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy152;
+ }
+yy152:
+#line 131 "modula.re"
+{RETURN(60);}
+#line 1660 "<stdout>"
+yy153: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy154;
+ }
+yy154:
+#line 129 "modula.re"
+{RETURN(58);}
+#line 1728 "<stdout>"
+yy155: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy156;
+ }
+yy156:
+#line 130 "modula.re"
+{RETURN(59);}
+#line 1796 "<stdout>"
+yy157: yych = *++YYCURSOR;
+ switch(yych){
+ case 'T': goto yy158;
+ default: goto yy81;
+ }
+yy158: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy159;
+ }
+yy159:
+#line 128 "modula.re"
+{RETURN(57);}
+#line 1869 "<stdout>"
+yy160: yych = *++YYCURSOR;
+ switch(yych){
+ case 'D': goto yy161;
+ default: goto yy81;
+ }
+yy161: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': 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 yy80;
+ case 'U': goto yy163;
+ default: goto yy162;
+ }
+yy162:
+#line 126 "modula.re"
+{RETURN(55);}
+#line 1941 "<stdout>"
+yy163: yych = *++YYCURSOR;
+ switch(yych){
+ case 'L': goto yy164;
+ default: goto yy81;
+ }
+yy164: yych = *++YYCURSOR;
+ switch(yych){
+ case 'E': goto yy165;
+ default: goto yy81;
+ }
+yy165: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy166;
+ }
+yy166:
+#line 127 "modula.re"
+{RETURN(56);}
+#line 2019 "<stdout>"
+yy167: yych = *++YYCURSOR;
+ switch(yych){
+ case 'O': goto yy168;
+ default: goto yy81;
+ }
+yy168: yych = *++YYCURSOR;
+ switch(yych){
+ case 'P': goto yy169;
+ default: goto yy81;
+ }
+yy169: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy170;
+ }
+yy170:
+#line 125 "modula.re"
+{RETURN(54);}
+#line 2097 "<stdout>"
+yy171: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy172;
+ }
+yy172:
+#line 121 "modula.re"
+{RETURN(50);}
+#line 2165 "<stdout>"
+yy173: yych = *++YYCURSOR;
+ switch(yych){
+ case 'P': goto yy176;
+ default: goto yy81;
+ }
+yy174: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy175;
+ }
+yy175:
+#line 124 "modula.re"
+{RETURN(53);}
+#line 2238 "<stdout>"
+yy176: yych = *++YYCURSOR;
+ switch(yych){
+ case 'L': goto yy177;
+ case 'O': goto yy178;
+ default: goto yy81;
+ }
+yy177: yych = *++YYCURSOR;
+ switch(yych){
+ case 'E': goto yy182;
+ default: goto yy81;
+ }
+yy178: yych = *++YYCURSOR;
+ switch(yych){
+ case 'R': goto yy179;
+ default: goto yy81;
+ }
+yy179: yych = *++YYCURSOR;
+ switch(yych){
+ case 'T': goto yy180;
+ default: goto yy81;
+ }
+yy180: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy181;
+ }
+yy181:
+#line 123 "modula.re"
+{RETURN(52);}
+#line 2327 "<stdout>"
+yy182: yych = *++YYCURSOR;
+ switch(yych){
+ case 'M': goto yy183;
+ default: goto yy81;
+ }
+yy183: yych = *++YYCURSOR;
+ switch(yych){
+ case 'E': goto yy184;
+ default: goto yy81;
+ }
+yy184: yych = *++YYCURSOR;
+ switch(yych){
+ case 'N': goto yy185;
+ default: goto yy81;
+ }
+yy185: yych = *++YYCURSOR;
+ switch(yych){
+ case 'T': goto yy186;
+ default: goto yy81;
+ }
+yy186: yych = *++YYCURSOR;
+ switch(yych){
+ case 'A': goto yy187;
+ default: goto yy81;
+ }
+yy187: yych = *++YYCURSOR;
+ switch(yych){
+ case 'T': goto yy188;
+ default: goto yy81;
+ }
+yy188: yych = *++YYCURSOR;
+ switch(yych){
+ case 'I': goto yy189;
+ default: goto yy81;
+ }
+yy189: yych = *++YYCURSOR;
+ switch(yych){
+ case 'O': goto yy190;
+ default: goto yy81;
+ }
+yy190: yych = *++YYCURSOR;
+ switch(yych){
+ case 'N': goto yy191;
+ default: goto yy81;
+ }
+yy191: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy192;
+ }
+yy192:
+#line 122 "modula.re"
+{RETURN(51);}
+#line 2440 "<stdout>"
+yy193: yych = *++YYCURSOR;
+ switch(yych){
+ case 'R': goto yy198;
+ default: goto yy81;
+ }
+yy194: yych = *++YYCURSOR;
+ switch(yych){
+ case 'O': goto yy195;
+ default: goto yy81;
+ }
+yy195: yych = *++YYCURSOR;
+ switch(yych){
+ case 'M': goto yy196;
+ default: goto yy81;
+ }
+yy196: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy197;
+ }
+yy197:
+#line 120 "modula.re"
+{RETURN(49);}
+#line 2523 "<stdout>"
+yy198: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy199;
+ }
+yy199:
+#line 119 "modula.re"
+{RETURN(48);}
+#line 2591 "<stdout>"
+yy200: yych = *++YYCURSOR;
+ switch(yych){
+ case 'S': goto yy213;
+ default: goto yy81;
+ }
+yy201: yych = *++YYCURSOR;
+ switch(yych){
+ case 'D': goto yy211;
+ default: goto yy81;
+ }
+yy202: yych = *++YYCURSOR;
+ switch(yych){
+ case 'I': goto yy203;
+ case 'P': goto yy204;
+ default: goto yy81;
+ }
+yy203: yych = *++YYCURSOR;
+ switch(yych){
+ case 'T': goto yy209;
+ default: goto yy81;
+ }
+yy204: yych = *++YYCURSOR;
+ switch(yych){
+ case 'O': goto yy205;
+ default: goto yy81;
+ }
+yy205: yych = *++YYCURSOR;
+ switch(yych){
+ case 'R': goto yy206;
+ default: goto yy81;
+ }
+yy206: yych = *++YYCURSOR;
+ switch(yych){
+ case 'T': goto yy207;
+ default: goto yy81;
+ }
+yy207: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy208;
+ }
+yy208:
+#line 118 "modula.re"
+{RETURN(47);}
+#line 2695 "<stdout>"
+yy209: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy210;
+ }
+yy210:
+#line 117 "modula.re"
+{RETURN(46);}
+#line 2763 "<stdout>"
+yy211: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy212;
+ }
+yy212:
+#line 116 "modula.re"
+{RETURN(45);}
+#line 2831 "<stdout>"
+yy213: yych = *++YYCURSOR;
+ switch(yych){
+ case 'E': goto yy214;
+ case 'I': goto yy216;
+ default: goto yy81;
+ }
+yy214: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy215;
+ }
+yy215:
+#line 114 "modula.re"
+{RETURN(43);}
+#line 2905 "<stdout>"
+yy216: yych = *++YYCURSOR;
+ switch(yych){
+ case 'F': goto yy217;
+ default: goto yy81;
+ }
+yy217: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy218;
+ }
+yy218:
+#line 115 "modula.re"
+{RETURN(44);}
+#line 2978 "<stdout>"
+yy219: yych = *++YYCURSOR;
+ switch(yych){
+ case 'F': goto yy225;
+ default: goto yy81;
+ }
+yy220: yych = *++YYCURSOR;
+ switch(yych){
+ case 'V': goto yy223;
+ default: goto yy81;
+ }
+yy221: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy222;
+ }
+yy222:
+#line 113 "modula.re"
+{RETURN(42);}
+#line 3056 "<stdout>"
+yy223: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy224;
+ }
+yy224:
+#line 112 "modula.re"
+{RETURN(41);}
+#line 3124 "<stdout>"
+yy225: yych = *++YYCURSOR;
+ switch(yych){
+ case 'I': goto yy226;
+ default: goto yy81;
+ }
+yy226: yych = *++YYCURSOR;
+ switch(yych){
+ case 'N': goto yy227;
+ default: goto yy81;
+ }
+yy227: yych = *++YYCURSOR;
+ switch(yych){
+ case 'I': goto yy228;
+ default: goto yy81;
+ }
+yy228: yych = *++YYCURSOR;
+ switch(yych){
+ case 'T': goto yy229;
+ default: goto yy81;
+ }
+yy229: yych = *++YYCURSOR;
+ switch(yych){
+ case 'I': goto yy230;
+ default: goto yy81;
+ }
+yy230: yych = *++YYCURSOR;
+ switch(yych){
+ case 'O': goto yy231;
+ default: goto yy81;
+ }
+yy231: yych = *++YYCURSOR;
+ switch(yych){
+ case 'N': goto yy232;
+ default: goto yy81;
+ }
+yy232: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy233;
+ }
+yy233:
+#line 111 "modula.re"
+{RETURN(40);}
+#line 3227 "<stdout>"
+yy234: yych = *++YYCURSOR;
+ switch(yych){
+ case 'S': goto yy240;
+ default: goto yy81;
+ }
+yy235: yych = *++YYCURSOR;
+ switch(yych){
+ case 'N': goto yy236;
+ default: goto yy81;
+ }
+yy236: yych = *++YYCURSOR;
+ switch(yych){
+ case 'S': goto yy237;
+ default: goto yy81;
+ }
+yy237: yych = *++YYCURSOR;
+ switch(yych){
+ case 'T': goto yy238;
+ default: goto yy81;
+ }
+yy238: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy239;
+ }
+yy239:
+#line 110 "modula.re"
+{RETURN(39);}
+#line 3315 "<stdout>"
+yy240: yych = *++YYCURSOR;
+ switch(yych){
+ case 'E': goto yy241;
+ default: goto yy81;
+ }
+yy241: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy242;
+ }
+yy242:
+#line 109 "modula.re"
+{RETURN(38);}
+#line 3388 "<stdout>"
+yy243: yych = *++YYCURSOR;
+ switch(yych){
+ case 'G': goto yy246;
+ default: goto yy81;
+ }
+yy244: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy245;
+ }
+yy245:
+#line 108 "modula.re"
+{RETURN(37);}
+#line 3461 "<stdout>"
+yy246: yych = *++YYCURSOR;
+ switch(yych){
+ case 'I': goto yy247;
+ default: goto yy81;
+ }
+yy247: yych = *++YYCURSOR;
+ switch(yych){
+ case 'N': goto yy248;
+ default: goto yy81;
+ }
+yy248: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy249;
+ }
+yy249:
+#line 107 "modula.re"
+{RETURN(36);}
+#line 3539 "<stdout>"
+yy250: yych = *++YYCURSOR;
+ switch(yych){
+ case 'D': goto yy256;
+ default: goto yy81;
+ }
+yy251: yych = *++YYCURSOR;
+ switch(yych){
+ case 'R': goto yy252;
+ default: goto yy81;
+ }
+yy252: yych = *++YYCURSOR;
+ switch(yych){
+ case 'A': goto yy253;
+ default: goto yy81;
+ }
+yy253: yych = *++YYCURSOR;
+ switch(yych){
+ case 'Y': goto yy254;
+ default: goto yy81;
+ }
+yy254: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy255;
+ }
+yy255:
+#line 106 "modula.re"
+{RETURN(35);}
+#line 3627 "<stdout>"
+yy256: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 '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 yy80;
+ default: goto yy257;
+ }
+yy257:
+#line 105 "modula.re"
+{RETURN(34);}
+#line 3695 "<stdout>"
+yy258: ++YYCURSOR;
+ goto yy259;
+yy259:
+#line 96 "modula.re"
+{RETURN(26);}
+#line 3701 "<stdout>"
+yy260: ++YYCURSOR;
+ goto yy261;
+yy261:
+#line 93 "modula.re"
+{RETURN(23);}
+#line 3707 "<stdout>"
+yy262: ++YYCURSOR;
+ goto yy263;
+yy263:
+#line 92 "modula.re"
+{RETURN(22);}
+#line 3713 "<stdout>"
+yy264: ++YYCURSOR;
+ goto yy265;
+yy265:
+#line 89 "modula.re"
+{RETURN(19);}
+#line 3719 "<stdout>"
+yy266: ++YYCURSOR;
+ goto yy267;
+yy267:
+#line 86 "modula.re"
+{RETURN(16);}
+#line 3725 "<stdout>"
+yy268: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy269;
+yy269: switch(yych){
+ case 0x0A: goto yy270;
+ case '"': goto yy271;
+ default: goto yy268;
+ }
+yy270: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy5;
+ case 3: goto yy294;
+ case 4: goto yy296;
+ case 2: goto yy276;
+ case 1: goto yy8;
+ }
+yy271: ++YYCURSOR;
+ goto yy272;
+yy272:
+#line 75 "modula.re"
+{RETURN(6);}
+#line 3749 "<stdout>"
+yy273: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy274;
+yy274: switch(yych){
+ case 0x0A: goto yy270;
+ case '\'': goto yy271;
+ default: goto yy273;
+ }
+yy275: yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case '.': goto yy283;
+ default: goto yy286;
+ }
+yy276:
+#line 74 "modula.re"
+{RETURN(5);}
+#line 3769 "<stdout>"
+yy277: yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ goto yy278;
+yy278: switch(yych){
+ case '.': goto yy275;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy277;
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F': goto yy279;
+ case 'H': goto yy281;
+ default: goto yy5;
+ }
+yy279: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy280;
+yy280: 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': goto yy279;
+ case 'H': goto yy281;
+ default: goto yy270;
+ }
+yy281: ++YYCURSOR;
+ goto yy282;
+yy282:
+#line 73 "modula.re"
+{RETURN(4);}
+#line 3825 "<stdout>"
+yy283: ++YYCURSOR;
+ goto yy284;
+yy284: YYCURSOR -= 2;
+#line 70 "modula.re"
+{RETURN(1);}
+#line 3831 "<stdout>"
+yy285: yyaccept = 2;
+ YYMARKER = ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy286;
+yy286: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy285;
+ case 'E': goto yy287;
+ default: goto yy276;
+ }
+yy287: yych = *++YYCURSOR;
+ switch(yych){
+ case '+': case '-': goto yy288;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy289;
+ default: goto yy270;
+ }
+yy288: 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 yy289;
+ default: goto yy270;
+ }
+yy289: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy290;
+yy290: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy289;
+ default: goto yy276;
+ }
+yy291: yyaccept = 0;
+ YYMARKER = ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+ yych = *YYCURSOR;
+ goto yy292;
+yy292: switch(yych){
+ case '.': goto yy275;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7': goto yy291;
+ case '8':
+ case '9': goto yy277;
+ case 'A': case 'D':
+ case 'E':
+ case 'F': goto yy279;
+ case 'B': goto yy293;
+ case 'C': goto yy295;
+ case 'H': goto yy281;
+ default: goto yy5;
+ }
+yy293: yyaccept = 3;
+ 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': goto yy279;
+ case 'H': goto yy281;
+ default: goto yy294;
+ }
+yy294:
+#line 71 "modula.re"
+{RETURN(2);}
+#line 3947 "<stdout>"
+yy295: yyaccept = 4;
+ 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': goto yy279;
+ case 'H': goto yy281;
+ default: goto yy296;
+ }
+yy296:
+#line 72 "modula.re"
+{RETURN(3);}
+#line 3972 "<stdout>"
+yy297: ++YYCURSOR;
+ goto yy298;
+yy298:
+#line 67 "modula.re"
+{ depth = 1; goto comment; }
+#line 3978 "<stdout>"
+}
+#line 162 "modula.re"
+
+comment:
+
+#line 3982 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy299;
+yy300: ++YYCURSOR;
+yy299:
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy304;
+ case '(': goto yy303;
+ case '*': goto yy301;
+ default: goto yy306;
+ }
+yy301: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case ')': goto yy309;
+ default: goto yy302;
+ }
+yy302:
+#line 179 "modula.re"
+{ goto comment; }
+#line 4005 "<stdout>"
+yy303: yych = *++YYCURSOR;
+ switch(yych){
+ case '*': goto yy307;
+ default: goto yy302;
+ }
+yy304: ++YYCURSOR;
+ goto yy305;
+yy305:
+#line 174 "modula.re"
+{
+ if(cursor == s->eof) RETURN(0);
+ s->tok = s->pos = cursor; s->line++;
+ goto comment;
+ }
+#line 4020 "<stdout>"
+yy306: yych = *++YYCURSOR;
+ goto yy302;
+yy307: ++YYCURSOR;
+ goto yy308;
+yy308:
+#line 172 "modula.re"
+{ ++depth; goto comment; }
+#line 4028 "<stdout>"
+yy309: ++YYCURSOR;
+ goto yy310;
+yy310:
+#line 166 "modula.re"
+{
+ if(--depth == 0)
+ goto std;
+ else
+ goto comment;
+ }
+#line 4039 "<stdout>"
+}
+#line 180 "modula.re"
+
+}
+
+/*
+void putStr(FILE *o, char *s, uint l){
+ while(l-- > 0)
+ putc(*s++, o);
+}
+*/
+
+main(){
+ Scanner in;
+ memset((char*) &in, 0, sizeof(in));
+ in.fd = 0;
+ while(scan(&in)){
+/*
+ putc('<', stdout);
+ putStr(stdout, (char*) in.tok, in.cur - in.tok);
+ putc('>', stdout);
+ putc('\n', stdout);
+*/
+ }
+}
--- /dev/null
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+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 {cursor = fill(s, cursor);}
+
+#define RETURN(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;
+ uint depth;
+std:
+ s->tok = cursor;
+/*!re2c
+any = [\000-\377];
+digit = [0-9];
+letter = [a-zA-Z];
+*/
+
+/*!re2c
+ "(*" { depth = 1; goto comment; }
+
+ digit + {RETURN(1);}
+ digit + / ".." {RETURN(1);}
+ [0-7] + "B" {RETURN(2);}
+ [0-7] + "C" {RETURN(3);}
+ digit [0-9A-F] * "H" {RETURN(4);}
+ digit + "." digit * ("E" ([+-]) ? digit +) ? {RETURN(5);}
+ ['] (any\[\n']) * ['] | ["] (any\[\n"]) * ["] {RETURN(6);}
+
+ "#" {RETURN(7);}
+ "&" {RETURN(8);}
+ "(" {RETURN(9);}
+ ")" {RETURN(10);}
+ "*" {RETURN(11);}
+ "+" {RETURN(12);}
+ "," {RETURN(13);}
+ "-" {RETURN(14);}
+ "." {RETURN(15);}
+ ".." {RETURN(16);}
+ "/" {RETURN(17);}
+ ":" {RETURN(18);}
+ ":=" {RETURN(19);}
+ ";" {RETURN(20);}
+ "<" {RETURN(21);}
+ "<=" {RETURN(22);}
+ "<>" {RETURN(23);}
+ "=" {RETURN(24);}
+ ">" {RETURN(25);}
+ ">=" {RETURN(26);}
+ "[" {RETURN(27);}
+ "]" {RETURN(28);}
+ "^" {RETURN(29);}
+ "{" {RETURN(30);}
+ "|" {RETURN(31);}
+ "}" {RETURN(32);}
+ "~" {RETURN(33);}
+
+ "AND" {RETURN(34);}
+ "ARRAY" {RETURN(35);}
+ "BEGIN" {RETURN(36);}
+ "BY" {RETURN(37);}
+ "CASE" {RETURN(38);}
+ "CONST" {RETURN(39);}
+ "DEFINITION" {RETURN(40);}
+ "DIV" {RETURN(41);}
+ "DO" {RETURN(42);}
+ "ELSE" {RETURN(43);}
+ "ELSIF" {RETURN(44);}
+ "END" {RETURN(45);}
+ "EXIT" {RETURN(46);}
+ "EXPORT" {RETURN(47);}
+ "FOR" {RETURN(48);}
+ "FROM" {RETURN(49);}
+ "IF" {RETURN(50);}
+ "IMPLEMENTATION" {RETURN(51);}
+ "IMPORT" {RETURN(52);}
+ "IN" {RETURN(53);}
+ "LOOP" {RETURN(54);}
+ "MOD" {RETURN(55);}
+ "MODULE" {RETURN(56);}
+ "NOT" {RETURN(57);}
+ "OF" {RETURN(58);}
+ "OR" {RETURN(59);}
+ "POINTER" {RETURN(60);}
+ "PROCEDURE" {RETURN(61);}
+ "QUALIFIED" {RETURN(62);}
+ "RECORD" {RETURN(63);}
+ "REPEAT" {RETURN(64);}
+ "RETURN" {RETURN(65);}
+ "SET" {RETURN(66);}
+ "THEN" {RETURN(67);}
+ "TO" {RETURN(68);}
+ "TYPE" {RETURN(69);}
+ "UNTIL" {RETURN(70);}
+ "VAR" {RETURN(71);}
+ "WHILE" {RETURN(72);}
+ "WITH" {RETURN(73);}
+
+ letter (letter | digit) * {RETURN(74);}
+
+ [ \t]+ { goto std; }
+
+ "\n"
+ {
+ if(cursor == s->eof) RETURN(0);
+ s->pos = cursor; s->line++;
+ goto std;
+ }
+
+ any
+ {
+ printf("unexpected character: %c\n", *s->tok);
+ goto std;
+ }
+*/
+comment:
+/*!re2c
+ "*)"
+ {
+ if(--depth == 0)
+ goto std;
+ else
+ goto comment;
+ }
+ "(*" { ++depth; goto comment; }
+ "\n"
+ {
+ if(cursor == s->eof) RETURN(0);
+ s->tok = s->pos = cursor; s->line++;
+ goto comment;
+ }
+ any { goto comment; }
+*/
+}
+
+/*
+void putStr(FILE *o, char *s, uint l){
+ while(l-- > 0)
+ putc(*s++, o);
+}
+*/
+
+main(){
+ Scanner in;
+ memset((char*) &in, 0, sizeof(in));
+ in.fd = 0;
+ while(scan(&in)){
+/*
+ putc('<', stdout);
+ putStr(stdout, (char*) in.tok, in.cur - in.tok);
+ putc('>', stdout);
+ putc('\n', stdout);
+*/
+ }
+}
--- /dev/null
+
+#line 1 "repeater.re"
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#define RET(n) printf("%d\n", n); return n
+
+int scan(char *s, int l){
+char *p = s;
+char *q;
+#define YYCTYPE char
+#define YYCURSOR p
+#define YYLIMIT (s+l)
+#define YYMARKER q
+#define YYFILL(n)
+
+#line 6 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy0;
+yy1: ++YYCURSOR;
+yy0:
+ if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x0A: case '^': case 'q': goto yy6;
+ case 'A': goto yy3;
+ case 'a': goto yy4;
+ default: goto yy2;
+ }
+yy2: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy5;
+ }
+yy3: yych = *++YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy8;
+ case 'A': case 'a': goto yy7;
+ default: goto yy2;
+ }
+yy4: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 0x0A: goto yy8;
+ case 'A': case 'a': goto yy7;
+ default: goto yy5;
+ }
+yy5:
+#line 20 "repeater.re"
+{RET(0);}
+#line 41 "<stdout>"
+yy6: yych = *++YYCURSOR;
+ goto yy5;
+yy7: yych = *++YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy11;
+ case 'A': case 'a': goto yy10;
+ default: goto yy2;
+ }
+yy8: ++YYCURSOR;
+ goto yy9;
+yy9:
+#line 16 "repeater.re"
+{RET(1);}
+#line 55 "<stdout>"
+yy10: yych = *++YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy11;
+ case 'A': case 'a': goto yy13;
+ default: goto yy2;
+ }
+yy11: ++YYCURSOR;
+ goto yy12;
+yy12:
+#line 17 "repeater.re"
+{RET(2);}
+#line 67 "<stdout>"
+yy13: yych = *++YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy15;
+ case 'A': case 'a': goto yy14;
+ default: goto yy2;
+ }
+yy14: yych = *++YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy15;
+ case 'A': case 'a': goto yy17;
+ default: goto yy2;
+ }
+yy15: ++YYCURSOR;
+ goto yy16;
+yy16:
+#line 19 "repeater.re"
+{RET(3);}
+#line 85 "<stdout>"
+yy17: yych = *++YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy18;
+ default: goto yy21;
+ }
+yy18: ++YYCURSOR;
+ goto yy19;
+yy19:
+#line 18 "repeater.re"
+{RET(4);}
+#line 96 "<stdout>"
+yy20: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy21;
+yy21: switch(yych){
+ case 0x0A: goto yy15;
+ case 'A': case 'a': goto yy20;
+ default: goto yy2;
+ }
+}
+#line 21 "repeater.re"
+
+}
+
+#define do_scan(str) scan(str, strlen(str))
+
+main()
+{
+ do_scan("a\n");
+ do_scan("aa\n");
+ do_scan("aaa\n");
+ do_scan("aaaa\n");
+ do_scan("q");
+ do_scan("a");
+ do_scan("A\n");
+ do_scan("AA\n");
+ do_scan("aAa\n");
+ do_scan("AaaA\n");
+ do_scan("Q");
+ do_scan("AaaAa\n");
+ do_scan("AaaAaA\n");
+ do_scan("A");
+ do_scan("\n");
+ do_scan("0");
+}
--- /dev/null
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#define RET(n) printf("%d\n", n); return n
+
+int scan(char *s, int l){
+char *p = s;
+char *q;
+#define YYCTYPE char
+#define YYCURSOR p
+#define YYLIMIT (s+l)
+#define YYMARKER q
+#define YYFILL(n)
+/*!re2c
+ 'a'{1}"\n" {RET(1);}
+ 'a'{2,3}"\n" {RET(2);}
+ 'a'{6}"\n" {RET(4);}
+ 'a'{4,}"\n" {RET(3);}
+ [^aq]|"\n" {RET(0);}
+*/
+}
+
+#define do_scan(str) scan(str, strlen(str))
+
+main()
+{
+ do_scan("a\n");
+ do_scan("aa\n");
+ do_scan("aaa\n");
+ do_scan("aaaa\n");
+ do_scan("q");
+ do_scan("a");
+ do_scan("A\n");
+ do_scan("AA\n");
+ do_scan("aAa\n");
+ do_scan("AaaA\n");
+ do_scan("Q");
+ do_scan("AaaAa\n");
+ do_scan("AaaAaA\n");
+ do_scan("A");
+ do_scan("\n");
+ do_scan("0");
+}
--- /dev/null
+#!/bin/sh
+for x in @srcdir@/test/*.re; do
+ echo $x
+ # don't use the -o flag, since it makes it harder to diff.
+ @builddir@/re2c $x | sed -e "s,$x,`basename $x`,g" -e "s,/\* Generated by re2c .*\*/,,g" > ${x%.re}.temp
+ if diff ${x%.re}.c ${x%.re}.temp; then
+ echo "Passed."
+ rm ${x%.re}.temp
+ else
+ echo "Failed."
+ exit 1
+ fi
+done
+
--- /dev/null
+
+#line 1 "sample.re"
+
+#line 6 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy0;
+yy1: ++YYCURSOR;
+yy0:
+ if((YYLIMIT - YYCURSOR) < 6) YYFILL(6);
+ yych = *YYCURSOR;
+ switch(yych){
+ case '0': goto yy5;
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy7;
+ 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 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy4;
+ case 'p': goto yy2;
+ default: goto yy8;
+ }
+yy2: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case 'r': goto yy19;
+ default: goto yy18;
+ }
+yy3:
+#line 3 "sample.re"
+{return ID;}
+#line 61 "<stdout>"
+yy4: yych = *++YYCURSOR;
+ goto yy18;
+yy5: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 'x': goto yy12;
+ default: goto yy11;
+ }
+yy6:
+#line 4 "sample.re"
+{return DEC;}
+#line 73 "<stdout>"
+yy7: yych = *++YYCURSOR;
+ goto yy11;
+yy8: ++YYCURSOR;
+ goto yy9;
+yy9:
+#line 6 "sample.re"
+{return ERR;}
+#line 81 "<stdout>"
+yy10: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy11;
+yy11: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy10;
+ default: goto yy6;
+ }
+yy12: 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': goto yy14;
+ default: goto yy13;
+ }
+yy13: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy6;
+ }
+yy14: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy15;
+yy15: 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': goto yy14;
+ default: goto yy16;
+ }
+yy16:
+#line 5 "sample.re"
+{return HEX;}
+#line 149 "<stdout>"
+yy17: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy18;
+yy18: switch(yych){
+ 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 yy17;
+ default: goto yy3;
+ }
+yy19: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy20;
+ default: goto yy18;
+ }
+yy20: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy21;
+ default: goto yy18;
+ }
+yy21: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy22;
+ default: goto yy18;
+ }
+yy22: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ 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 yy17;
+ default: goto yy23;
+ }
+yy23:
+#line 2 "sample.re"
+{return PRINT;}
+#line 232 "<stdout>"
+}
+#line 7 "sample.re"
+
--- /dev/null
+/*!re2c
+ "print" {return PRINT;}
+ [a-z]+ {return ID;}
+ [0-9]+ {return DEC;}
+ "0x" [0-9a-f]+ {return HEX;}
+ [\000-\377] {return ERR;}
+*/
--- /dev/null
+
+#line 1 "scanner.re"
+/* $Id$ */
+#include <stdlib.h>
+#include <string.h>
+#include <iostream>
+#include "scanner.h"
+#include "parser.h"
+#include "y.tab.h"
+
+extern YYSTYPE yylval;
+
+#ifndef MAX
+#define MAX(a,b) (((a)>(b))?(a):(b))
+#endif
+
+#define BSIZE 8192
+
+#define YYCTYPE char
+#define YYCURSOR cursor
+#define YYLIMIT lim
+#define YYMARKER ptr
+#define YYFILL(n) {cursor = fill(cursor);}
+
+#define RETURN(i) {cur = cursor; return i;}
+
+
+Scanner::Scanner(std::istream& i) : in(i),
+ bot(NULL), tok(NULL), ptr(NULL), cur(NULL), pos(NULL), lim(NULL),
+ top(NULL), eof(NULL), tchar(0), tline(0), cline(1) {
+ ;
+}
+
+char *Scanner::fill(char *cursor){
+ if(!eof){
+ uint cnt = tok - bot;
+ if(cnt){
+ memcpy(bot, tok, lim - tok);
+ tok = bot;
+ ptr -= cnt;
+ cursor -= cnt;
+ pos -= cnt;
+ lim -= cnt;
+ }
+ if((top - lim) < BSIZE){
+ char *buf = new char[(lim - bot) + BSIZE];
+ memcpy(buf, tok, lim - tok);
+ tok = buf;
+ ptr = &buf[ptr - bot];
+ cursor = &buf[cursor - bot];
+ pos = &buf[pos - bot];
+ lim = &buf[lim - bot];
+ top = &lim[BSIZE];
+ delete [] bot;
+ bot = buf;
+ }
+ if((cnt = in.rdbuf()->sgetn((char*) lim, BSIZE)) != BSIZE){
+ eof = &lim[cnt]; *eof++ = '\n';
+ }
+ lim += cnt;
+ }
+ return cursor;
+}
+
+#line 72 "scanner.re"
+
+
+int Scanner::echo(std::ostream &out){
+ char *cursor = cur;
+
+ // Catch EOF
+ if (eof && cursor == eof)
+ return 0;
+
+ tok = cursor;
+echo:
+
+#line 7 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy0;
+yy1: ++YYCURSOR;
+yy0:
+ if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy4;
+ case '/': goto yy2;
+ default: goto yy6;
+ }
+yy2: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case '*': goto yy7;
+ default: goto yy3;
+ }
+yy3:
+#line 91 "scanner.re"
+{ goto echo; }
+#line 30 "<stdout>"
+yy4: ++YYCURSOR;
+ goto yy5;
+yy5:
+#line 87 "scanner.re"
+{ if(cursor == eof) RETURN(0);
+ out.write((const char*)(tok), (const char*)(cursor) - (const char*)(tok));
+ tok = pos = cursor; cline++;
+ goto echo; }
+#line 39 "<stdout>"
+yy6: yych = *++YYCURSOR;
+ goto yy3;
+yy7: yych = *++YYCURSOR;
+ switch(yych){
+ case '!': goto yy9;
+ default: goto yy8;
+ }
+yy8: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy3;
+ }
+yy9: yych = *++YYCURSOR;
+ switch(yych){
+ case 'r': goto yy10;
+ default: goto yy8;
+ }
+yy10: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy11;
+ default: goto yy8;
+ }
+yy11: yych = *++YYCURSOR;
+ switch(yych){
+ case '2': goto yy12;
+ default: goto yy8;
+ }
+yy12: yych = *++YYCURSOR;
+ switch(yych){
+ case 'c': goto yy13;
+ default: goto yy8;
+ }
+yy13: ++YYCURSOR;
+ goto yy14;
+yy14:
+#line 84 "scanner.re"
+{ out.write((const char*)(tok), (const char*)(&cursor[-7]) - (const char*)(tok));
+ tok = cursor;
+ RETURN(1); }
+#line 78 "<stdout>"
+}
+#line 92 "scanner.re"
+
+}
+
+
+int Scanner::scan(){
+ char *cursor = cur;
+ uint depth;
+
+scan:
+ tchar = cursor - pos;
+ tline = cline;
+ tok = cursor;
+
+#line 82 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy15;
+yy16: ++YYCURSOR;
+yy15:
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x09: case ' ': goto yy33;
+ case 0x0A: goto yy35;
+ case '"': goto yy23;
+ case '\'': goto yy25;
+ case '(':
+ case ')': case ';': case '=': case '\\': case '|': goto yy29;
+ case '*': goto yy21;
+ case '+': case '?': goto yy30;
+ case '/': goto yy19;
+ 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 '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 yy31;
+ case '[': goto yy27;
+ case '{': goto yy17;
+ default: goto yy37;
+ }
+yy17: 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': goto yy63;
+ default: goto yy18;
+ }
+yy18:
+#line 105 "scanner.re"
+{ depth = 1;
+ goto code;
+ }
+#line 176 "<stdout>"
+yy19: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '*': goto yy61;
+ default: goto yy20;
+ }
+yy20:
+#line 131 "scanner.re"
+{ RETURN(*tok); }
+#line 185 "<stdout>"
+yy21: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '/': goto yy59;
+ default: goto yy22;
+ }
+yy22:
+#line 133 "scanner.re"
+{ yylval.op = *tok;
+ RETURN(CLOSE); }
+#line 195 "<stdout>"
+yy23: yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 0x0A: goto yy24;
+ default: goto yy55;
+ }
+yy24:
+#line 122 "scanner.re"
+{ fatal("unterminated string constant (missing \")"); }
+#line 205 "<stdout>"
+yy25: yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 0x0A: goto yy26;
+ default: goto yy50;
+ }
+yy26:
+#line 123 "scanner.re"
+{ fatal("unterminated string constant (missing ')"); }
+#line 215 "<stdout>"
+yy27: yyaccept = 3;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 0x0A: goto yy28;
+ default: goto yy44;
+ }
+yy28:
+#line 129 "scanner.re"
+{ fatal("unterminated range (missing ])"); }
+#line 225 "<stdout>"
+yy29: yych = *++YYCURSOR;
+ goto yy20;
+yy30: yych = *++YYCURSOR;
+ goto yy22;
+yy31: ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy42;
+yy32:
+#line 148 "scanner.re"
+{ cur = cursor;
+ yylval.symbol = Symbol::find(token());
+ return ID; }
+#line 237 "<stdout>"
+yy33: ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy40;
+yy34:
+#line 152 "scanner.re"
+{ goto scan; }
+#line 243 "<stdout>"
+yy35: ++YYCURSOR;
+ goto yy36;
+yy36:
+#line 154 "scanner.re"
+{ if(cursor == eof) RETURN(0);
+ pos = cursor; cline++;
+ goto scan;
+ }
+#line 252 "<stdout>"
+yy37: ++YYCURSOR;
+ goto yy38;
+yy38:
+#line 159 "scanner.re"
+{ std::cerr << "unexpected character: " << *tok << std::endl;
+ goto scan;
+ }
+#line 260 "<stdout>"
+yy39: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy40;
+yy40: switch(yych){
+ case 0x09: case ' ': goto yy39;
+ default: goto yy34;
+ }
+yy41: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy42;
+yy42: 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 '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 yy41;
+ default: goto yy32;
+ }
+yy43: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy44;
+yy44: switch(yych){
+ case 0x0A: goto yy45;
+ case '\\': goto yy46;
+ case ']': goto yy47;
+ default: goto yy43;
+ }
+yy45: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy18;
+ case 1: goto yy24;
+ case 2: goto yy26;
+ case 3: goto yy28;
+ }
+yy46: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy45;
+ default: goto yy43;
+ }
+yy47: ++YYCURSOR;
+ goto yy48;
+yy48:
+#line 125 "scanner.re"
+{ cur = cursor;
+ yylval.regexp = ranToRE(token());
+ return RANGE; }
+#line 371 "<stdout>"
+yy49: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy50;
+yy50: switch(yych){
+ case 0x0A: goto yy45;
+ case '\'': goto yy52;
+ case '\\': goto yy51;
+ default: goto yy49;
+ }
+yy51: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy45;
+ default: goto yy49;
+ }
+yy52: ++YYCURSOR;
+ goto yy53;
+yy53:
+#line 118 "scanner.re"
+{ cur = cursor;
+ yylval.regexp = strToCaseInsensitiveRE(token());
+ return STRING; }
+#line 398 "<stdout>"
+yy54: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy55;
+yy55: switch(yych){
+ case 0x0A: goto yy45;
+ case '"': goto yy57;
+ case '\\': goto yy56;
+ default: goto yy54;
+ }
+yy56: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy45;
+ default: goto yy54;
+ }
+yy57: ++YYCURSOR;
+ goto yy58;
+yy58:
+#line 114 "scanner.re"
+{ cur = cursor;
+ yylval.regexp = strToRE(token());
+ return STRING; }
+#line 425 "<stdout>"
+yy59: ++YYCURSOR;
+ goto yy60;
+yy60:
+#line 111 "scanner.re"
+{ tok = cursor;
+ RETURN(0); }
+#line 432 "<stdout>"
+yy61: ++YYCURSOR;
+ goto yy62;
+yy62:
+#line 108 "scanner.re"
+{ depth = 1;
+ goto comment; }
+#line 439 "<stdout>"
+yy63: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy64;
+yy64: switch(yych){
+ case ',': goto yy67;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy63;
+ case '}': goto yy65;
+ default: goto yy45;
+ }
+yy65: ++YYCURSOR;
+ goto yy66;
+yy66:
+#line 136 "scanner.re"
+{ yylval.extop.minsize = atoi((char *)tok+1);
+ yylval.extop.maxsize = atoi((char *)tok+1);
+ RETURN(CLOSESIZE); }
+#line 467 "<stdout>"
+yy67: yych = *++YYCURSOR;
+ switch(yych){
+ case '}': goto yy68;
+ default: goto yy71;
+ }
+yy68: ++YYCURSOR;
+ goto yy69;
+yy69:
+#line 144 "scanner.re"
+{ yylval.extop.minsize = atoi((char *)tok+1);
+ yylval.extop.maxsize = -1;
+ RETURN(CLOSESIZE); }
+#line 480 "<stdout>"
+yy70: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy71;
+yy71: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy70;
+ case '}': goto yy72;
+ default: goto yy45;
+ }
+yy72: ++YYCURSOR;
+ goto yy73;
+yy73:
+#line 140 "scanner.re"
+{ yylval.extop.minsize = atoi((char *)tok+1);
+ yylval.extop.maxsize = MAX(yylval.extop.minsize,atoi(strchr((char *)tok, ',')+1));
+ RETURN(CLOSESIZE); }
+#line 507 "<stdout>"
+}
+#line 162 "scanner.re"
+
+
+code:
+
+#line 511 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy74;
+yy75: ++YYCURSOR;
+yy74:
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy80;
+ case '"': goto yy84;
+ case '\'': goto yy85;
+ case '{': goto yy78;
+ case '}': goto yy76;
+ default: goto yy82;
+ }
+yy76: ++YYCURSOR;
+ goto yy77;
+yy77:
+#line 166 "scanner.re"
+{ if(--depth == 0){
+ cur = cursor;
+ yylval.token = new Token(token(), tline);
+ return CODE;
+ }
+ goto code; }
+#line 538 "<stdout>"
+yy78: ++YYCURSOR;
+ goto yy79;
+yy79:
+#line 172 "scanner.re"
+{ ++depth;
+ goto code; }
+#line 545 "<stdout>"
+yy80: ++YYCURSOR;
+ goto yy81;
+yy81:
+#line 174 "scanner.re"
+{ if(cursor == eof) fatal("missing '}'");
+ pos = cursor; cline++;
+ goto code;
+ }
+#line 554 "<stdout>"
+yy82: ++YYCURSOR;
+ goto yy83;
+yy83:
+#line 178 "scanner.re"
+{ goto code; }
+#line 560 "<stdout>"
+yy84: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 0x0A: goto yy83;
+ default: goto yy91;
+ }
+yy85: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 0x0A: goto yy83;
+ default: goto yy87;
+ }
+yy86: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy87;
+yy87: switch(yych){
+ case 0x0A: goto yy88;
+ case '\'': goto yy82;
+ case '\\': goto yy89;
+ default: goto yy86;
+ }
+yy88: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy83;
+ }
+yy89: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy88;
+ default: goto yy86;
+ }
+yy90: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy91;
+yy91: switch(yych){
+ case 0x0A: goto yy88;
+ case '"': goto yy82;
+ case '\\': goto yy92;
+ default: goto yy90;
+ }
+yy92: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy88;
+ default: goto yy90;
+ }
+}
+#line 179 "scanner.re"
+
+
+comment:
+
+#line 618 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy93;
+yy94: ++YYCURSOR;
+yy93:
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ yych = *YYCURSOR;
+ switch(yych){
+ case 0x0A: goto yy98;
+ case '*': goto yy95;
+ case '/': goto yy97;
+ default: goto yy100;
+ }
+yy95: ++YYCURSOR;
+ switch((yych = *YYCURSOR)) {
+ case '/': goto yy103;
+ default: goto yy96;
+ }
+yy96:
+#line 193 "scanner.re"
+{ goto comment; }
+#line 641 "<stdout>"
+yy97: yych = *++YYCURSOR;
+ switch(yych){
+ case '*': goto yy101;
+ default: goto yy96;
+ }
+yy98: ++YYCURSOR;
+ goto yy99;
+yy99:
+#line 189 "scanner.re"
+{ if(cursor == eof) RETURN(0);
+ tok = pos = cursor; cline++;
+ goto comment;
+ }
+#line 655 "<stdout>"
+yy100: yych = *++YYCURSOR;
+ goto yy96;
+yy101: ++YYCURSOR;
+ goto yy102;
+yy102:
+#line 187 "scanner.re"
+{ ++depth;
+ goto comment; }
+#line 664 "<stdout>"
+yy103: ++YYCURSOR;
+ goto yy104;
+yy104:
+#line 183 "scanner.re"
+{ if(--depth == 0)
+ goto scan;
+ else
+ goto comment; }
+#line 673 "<stdout>"
+}
+#line 194 "scanner.re"
+
+}
+
+void Scanner::fatal(char *msg){
+ std::cerr << "line " << tline << ", column " << (tchar + 1) << ": "
+ << msg << std::endl;
+ exit(1);
+}
--- /dev/null
+/* $Id$ */
+#include <stdlib.h>
+#include <string.h>
+#include <iostream>
+#include "scanner.h"
+#include "parser.h"
+#include "y.tab.h"
+
+extern YYSTYPE yylval;
+
+#ifndef MAX
+#define MAX(a,b) (((a)>(b))?(a):(b))
+#endif
+
+#define BSIZE 8192
+
+#define YYCTYPE char
+#define YYCURSOR cursor
+#define YYLIMIT lim
+#define YYMARKER ptr
+#define YYFILL(n) {cursor = fill(cursor);}
+
+#define RETURN(i) {cur = cursor; return i;}
+
+
+Scanner::Scanner(std::istream& i) : in(i),
+ bot(NULL), tok(NULL), ptr(NULL), cur(NULL), pos(NULL), lim(NULL),
+ top(NULL), eof(NULL), tchar(0), tline(0), cline(1) {
+ ;
+}
+
+char *Scanner::fill(char *cursor){
+ if(!eof){
+ uint cnt = tok - bot;
+ if(cnt){
+ memcpy(bot, tok, lim - tok);
+ tok = bot;
+ ptr -= cnt;
+ cursor -= cnt;
+ pos -= cnt;
+ lim -= cnt;
+ }
+ if((top - lim) < BSIZE){
+ char *buf = new char[(lim - bot) + BSIZE];
+ memcpy(buf, tok, lim - tok);
+ tok = buf;
+ ptr = &buf[ptr - bot];
+ cursor = &buf[cursor - bot];
+ pos = &buf[pos - bot];
+ lim = &buf[lim - bot];
+ top = &lim[BSIZE];
+ delete [] bot;
+ bot = buf;
+ }
+ if((cnt = in.rdbuf()->sgetn((char*) lim, BSIZE)) != BSIZE){
+ eof = &lim[cnt]; *eof++ = '\n';
+ }
+ lim += cnt;
+ }
+ return cursor;
+}
+
+/*!re2c
+any = [\000-\377];
+dot = any \ [\n];
+esc = dot \ [\\];
+cstring = "[" ((esc \ [\]]) | "\\" dot)* "]" ;
+dstring = "\"" ((esc \ ["] ) | "\\" dot)* "\"";
+sstring = "'" ((esc \ ['] ) | "\\" dot)* "'" ;
+letter = [a-zA-Z];
+digit = [0-9];
+*/
+
+int Scanner::echo(std::ostream &out){
+ char *cursor = cur;
+
+ // Catch EOF
+ if (eof && cursor == eof)
+ return 0;
+
+ tok = cursor;
+echo:
+/*!re2c
+ "/*!re2c" { out.write((const char*)(tok), (const char*)(&cursor[-7]) - (const char*)(tok));
+ tok = cursor;
+ RETURN(1); }
+ "\n" { if(cursor == eof) RETURN(0);
+ out.write((const char*)(tok), (const char*)(cursor) - (const char*)(tok));
+ tok = pos = cursor; cline++;
+ goto echo; }
+ any { goto echo; }
+*/
+}
+
+
+int Scanner::scan(){
+ char *cursor = cur;
+ uint depth;
+
+scan:
+ tchar = cursor - pos;
+ tline = cline;
+ tok = cursor;
+/*!re2c
+ "{" { depth = 1;
+ goto code;
+ }
+ "/*" { depth = 1;
+ goto comment; }
+
+ "*/" { tok = cursor;
+ RETURN(0); }
+
+ dstring { cur = cursor;
+ yylval.regexp = strToRE(token());
+ return STRING; }
+
+ sstring { cur = cursor;
+ yylval.regexp = strToCaseInsensitiveRE(token());
+ return STRING; }
+
+ "\"" { fatal("unterminated string constant (missing \")"); }
+ "'" { fatal("unterminated string constant (missing ')"); }
+
+ cstring { cur = cursor;
+ yylval.regexp = ranToRE(token());
+ return RANGE; }
+
+ "[" { fatal("unterminated range (missing ])"); }
+
+ [()|=;/\\] { RETURN(*tok); }
+
+ [*+?] { yylval.op = *tok;
+ RETURN(CLOSE); }
+
+ "{" [0-9]+ "}" { yylval.extop.minsize = atoi((char *)tok+1);
+ yylval.extop.maxsize = atoi((char *)tok+1);
+ RETURN(CLOSESIZE); }
+
+ "{" [0-9]+ "," [0-9]+ "}" { yylval.extop.minsize = atoi((char *)tok+1);
+ yylval.extop.maxsize = MAX(yylval.extop.minsize,atoi(strchr((char *)tok, ',')+1));
+ RETURN(CLOSESIZE); }
+
+ "{" [0-9]+ ",}" { yylval.extop.minsize = atoi((char *)tok+1);
+ yylval.extop.maxsize = -1;
+ RETURN(CLOSESIZE); }
+
+ letter (letter|digit)* { cur = cursor;
+ yylval.symbol = Symbol::find(token());
+ return ID; }
+
+ [ \t]+ { goto scan; }
+
+ "\n" { if(cursor == eof) RETURN(0);
+ pos = cursor; cline++;
+ goto scan;
+ }
+
+ any { std::cerr << "unexpected character: " << *tok << std::endl;
+ goto scan;
+ }
+*/
+
+code:
+/*!re2c
+ "}" { if(--depth == 0){
+ cur = cursor;
+ yylval.token = new Token(token(), tline);
+ return CODE;
+ }
+ goto code; }
+ "{" { ++depth;
+ goto code; }
+ "\n" { if(cursor == eof) fatal("missing '}'");
+ pos = cursor; cline++;
+ goto code;
+ }
+ dstring | sstring | any { goto code; }
+*/
+
+comment:
+/*!re2c
+ "*/" { if(--depth == 0)
+ goto scan;
+ else
+ goto comment; }
+ "/*" { ++depth;
+ goto comment; }
+ "\n" { if(cursor == eof) RETURN(0);
+ tok = pos = cursor; cline++;
+ goto comment;
+ }
+ any { goto comment; }
+*/
+}
+
+void Scanner::fatal(char *msg){
+ std::cerr << "line " << tline << ", column " << (tchar + 1) << ": "
+ << msg << std::endl;
+ exit(1);
+}
--- /dev/null
+
+#line 1 "simple.re"
+#define NULL ((char*) 0)
+char *scan(char *p){
+char *q;
+#define YYCTYPE char
+#define YYCURSOR p
+#define YYLIMIT p
+#define YYMARKER q
+#define YYFILL(n)
+
+#line 6 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept;
+ goto yy0;
+yy1: ++YYCURSOR;
+yy0:
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ 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 yy2;
+ default: goto yy4;
+ }
+yy2: ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy7;
+yy3:
+#line 10 "simple.re"
+{return YYCURSOR;}
+#line 33 "<stdout>"
+yy4: ++YYCURSOR;
+ goto yy5;
+yy5:
+#line 11 "simple.re"
+{return NULL;}
+#line 39 "<stdout>"
+yy6: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy7;
+yy7: switch(yych){
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy6;
+ default: goto yy3;
+ }
+}
+#line 12 "simple.re"
+
+}
--- /dev/null
+#define NULL ((char*) 0)
+char *scan(char *p){
+char *q;
+#define YYCTYPE char
+#define YYCURSOR p
+#define YYLIMIT p
+#define YYMARKER q
+#define YYFILL(n)
+/*!re2c
+ [0-9]+ {return YYCURSOR;}
+ [\000-\377] {return NULL;}
+*/
+}