📄 cmmap.c
字号:
/* Generated by re2c */#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 319typedef 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 113 "<stdout>"{ YYCTYPE yych; unsigned int yyaccept = 0; 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 227 "<stdout>"yy4: ++YYCURSOR; switch((yych = *YYCURSOR)) { case 'u': goto yy335; default: goto yy180; }yy5:#line 154 "cmmap.re" { RET(ID); }#line 237 "<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 350 "<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 368 "<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 389 "<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 407 "<stdout>"yy31: ++YYCURSOR; switch((yych = *YYCURSOR)) { case '<': goto yy110; case '=': goto yy108; default: goto yy32; }yy32:#line 207 "cmmap.re" { RET('<'); }#line 418 "<stdout>"yy33: ++YYCURSOR; switch((yych = *YYCURSOR)) { case '+': goto yy104; case '=': goto yy106; default: goto yy34; }yy34:#line 203 "cmmap.re" { RET('+'); }#line 429 "<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 441 "<stdout>"yy37: ++YYCURSOR; switch((yych = *YYCURSOR)) { case '=': goto yy96; default: goto yy38; }yy38:#line 204 "cmmap.re" { RET('*'); }#line 451 "<stdout>"yy39: ++YYCURSOR; switch((yych = *YYCURSOR)) { case '=': goto yy94; default: goto yy40; }yy40:#line 206 "cmmap.re" { RET('%'); }#line 461 "<stdout>"yy41: ++YYCURSOR; switch((yych = *YYCURSOR)) { case '&': goto yy90; case '=': goto yy92; default: goto yy42; }yy42:#line 199 "cmmap.re" { RET('&'); }#line 472 "<stdout>"yy43: ++YYCURSOR; switch((yych = *YYCURSOR)) { case '=': goto yy88; default: goto yy44; }yy44:#line 209 "cmmap.re" { RET('^'); }#line 482 "<stdout>"yy45: ++YYCURSOR; switch((yych = *YYCURSOR)) { case '=': goto yy86; case '|': goto yy84; default: goto yy46; }yy46:#line 210 "cmmap.re" { RET('|'); }#line 493 "<stdout>"yy47: ++YYCURSOR; switch((yych = *YYCURSOR)) { case '=': goto yy82; default: goto yy48; }yy48:#line 193 "cmmap.re" { RET('='); }#line 503 "<stdout>"yy49: ++YYCURSOR; switch((yych = *YYCURSOR)) { case '=': goto yy80; default: goto yy50; }yy50:#line 200 "cmmap.re" { RET('!'); }#line 513 "<stdout>"yy51: ++YYCURSOR;#line 188 "cmmap.re" { RET(';'); }#line 518 "<stdout>"yy53: ++YYCURSOR;#line 189 "cmmap.re" { RET('{'); }#line 523 "<stdout>"yy55: ++YYCURSOR;#line 190 "cmmap.re" { RET('}'); }#line 528 "<stdout>"yy57: ++YYCURSOR;#line 191 "cmmap.re" { RET(','); }#line 533 "<stdout>"yy59: ++YYCURSOR;#line 192 "cmmap.re" { RET(':'); }#line 538 "<stdout>"yy61: ++YYCURSOR;#line 194 "cmmap.re" { RET('('); }#line 543 "<stdout>"yy63: ++YYCURSOR;#line 195 "cmmap.re" { RET(')'); }#line 548 "<stdout>"yy65: ++YYCURSOR;#line 196 "cmmap.re" { RET('['); }#line 553 "<stdout>"yy67: ++YYCURSOR;#line 197 "cmmap.re" { RET(']'); }#line 558 "<stdout>"yy69: ++YYCURSOR;#line 201 "cmmap.re" { RET('~'); }#line 563 "<stdout>"yy71: ++YYCURSOR;#line 211 "cmmap.re" { RET('?'); }#line 568 "<stdout>"yy73: ++YYCURSOR; yych = *YYCURSOR; goto yy79;yy74:#line 214 "cmmap.re" { goto std; }#line 576 "<stdout>"yy75: ++YYCURSOR;#line 217 "cmmap.re" { if(cursor == s->eof) RET(EOI); s->pos = cursor; s->line++; goto std; }#line 585 "<stdout>"yy77: yych = *++YYCURSOR; goto yy25;yy78: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR;yy79: switch(yych) { case 0x09: case 0x0B: case 0x0C: case ' ': goto yy78; default: goto yy74; }yy80: ++YYCURSOR;#line 187 "cmmap.re" { RET(NEQ); }#line 605 "<stdout>"yy82: ++YYCURSOR;#line 186 "cmmap.re" { RET(EQL); }#line 610 "<stdout>"yy84: ++YYCURSOR;#line 183 "cmmap.re" { RET(OROR); }#line 615 "<stdout>"yy86: ++YYCURSOR;#line 176 "cmmap.re" { RET(OREQ); }#line 620 "<stdout>"yy88: ++YYCURSOR;#line 175 "cmmap.re" { RET(XOREQ); }#line 625 "<stdout>"yy90: ++YYCURSOR;#line 182 "cmmap.re" { RET(ANDAND); }#line 630 "<stdout>"yy92: ++YYCURSOR;#line 174 "cmmap.re" { RET(ANDEQ); }#line 635 "<stdout>"yy94: ++YYCURSOR;#line 173 "cmmap.re" { RET(MODEQ); }#line 640 "<stdout>"yy96: ++YYCURSOR;#line 171 "cmmap.re" { RET(MULEQ); }#line 645 "<stdout>"yy98: ++YYCURSOR;#line 181 "cmmap.re" { RET(DEREF); }#line 650 "<stdout>"yy100: ++YYCURSOR;#line 180 "cmmap.re" { RET(DECR); }#line 655 "<stdout>"yy102: ++YYCURSOR;#line 170 "cmmap.re" { RET(SUBEQ); }#line 660 "<stdout>"yy104: ++YYCURSOR;#line 179 "cmmap.re" { RET(INCR); }#line 665 "<stdout>"yy106: ++YYCURSOR;#line 169 "cmmap.re" { RET(ADDEQ); }#line 670 "<stdout>"yy108: ++YYCURSOR;#line 184 "cmmap.re" { RET(LEQ); }#line 675 "<stdout>"yy110: ++YYCURSOR; switch((yych = *YYCURSOR)) { case '=': goto yy112; default: goto yy111; }yy111:#line 178 "cmmap.re" { RET(LSHIFT); }#line 685 "<stdout>"yy112: ++YYCURSOR;#line 168 "cmmap.re" { RET(LSHIFTEQ); }#line 690 "<stdout>"yy114: ++YYCURSOR;#line 185 "cmmap.re" { RET(GEQ); }#line 695 "<stdout>"yy116: ++YYCURSOR; switch((yych = *YYCURSOR)) { case '=': goto yy118; default: goto yy117; }yy117:#line 177 "cmmap.re" { RET(RSHIFT); }#line 705 "<stdout>"yy118: ++YYCURSOR;#line 167 "cmmap.re" { RET(RSHIFTEQ); }#line 710 "<stdout>"yy120: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR;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 1: goto yy25; case 2: goto yy27; case 3: goto yy134; }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;#line 164 "cmmap.re" { RET(SCON); }#line 761 "<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; 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; 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) < 3) YYFILL(3); yych = *YYCURSOR; switch(yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto 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 874 "<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; 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;#line 166 "cmmap.re" { RET(ELLIPSIS); }#line 935 "<stdout>"yy142: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR;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; 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; 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) < 4) YYFILL(4); yych = *YYCURSOR;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; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -