📄 lexer.c
字号:
12,
0,
9,
0,
3,
0,
3,
0,
7,
0,
5,
0,
3,
0,
3,
0,
3,
0,
3,
0,
0};
# define YYTYPE unsigned char
struct yywork { YYTYPE verify, advance; } yycrank[] ={
0,0, 0,0, 3,7, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 3,8, 3,9,
0,0, 8,9, 8,9, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 3,10,
8,9, 27,51, 0,0, 0,0,
3,11, 28,52, 0,0, 0,0,
3,12, 14,36, 0,0, 3,13,
3,14, 3,15, 3,16, 3,16,
3,16, 3,16, 3,16, 3,16,
3,16, 3,17, 6,23, 23,50,
0,0, 0,0, 0,0, 6,24,
0,0, 0,0, 3,18, 3,18,
0,0, 0,0, 3,18, 4,11,
3,19, 3,19, 35,54, 0,0,
0,0, 0,0, 4,13, 4,14,
3,19, 4,16, 4,16, 4,16,
4,16, 4,16, 4,16, 4,16,
5,22, 3,19, 55,64, 0,0,
3,20, 3,7, 3,21, 3,7,
5,22, 5,22, 0,0, 10,25,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 35,54, 10,25,
10,25, 13,35, 13,35, 13,35,
13,35, 13,35, 13,35, 13,35,
13,35, 13,35, 13,35, 0,0,
0,0, 5,22, 55,64, 4,20,
0,0, 4,21, 0,0, 0,0,
0,0, 5,23, 5,22, 0,0,
10,26, 0,0, 5,24, 5,22,
0,0, 0,0, 0,0, 0,0,
11,28, 10,25, 0,0, 5,22,
0,0, 0,0, 10,25, 0,0,
11,28, 11,28, 0,0, 0,0,
5,22, 5,22, 10,25, 0,0,
5,22, 0,0, 5,22, 5,22,
0,0, 0,0, 0,0, 10,25,
10,25, 0,0, 5,22, 10,25,
0,0, 10,25, 10,25, 0,0,
0,0, 11,28, 0,0, 5,22,
0,0, 10,25, 0,0, 5,22,
0,0, 5,22, 11,28, 0,0,
0,0, 0,0, 10,25, 11,28,
0,0, 0,0, 10,27, 0,0,
10,25, 0,0, 0,0, 11,28,
43,59, 43,59, 43,59, 43,59,
43,59, 43,59, 43,59, 43,59,
11,28, 11,28, 0,0, 0,0,
11,28, 0,0, 11,28, 11,28,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 11,28, 0,0,
29,28, 0,0, 0,0, 0,0,
0,0, 12,30, 0,0, 11,28,
0,0, 0,0, 0,0, 11,29,
0,0, 11,28, 12,31, 12,32,
12,32, 12,32, 12,32, 12,32,
12,32, 12,32, 12,33, 12,33,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 12,34,
12,34, 12,34, 12,34, 12,34,
12,34, 0,0, 29,53, 29,53,
29,53, 29,53, 29,53, 29,53,
29,53, 29,53, 0,0, 0,0,
0,0, 0,0, 15,37, 0,0,
15,38, 15,38, 15,38, 15,38,
15,38, 15,38, 15,38, 15,38,
15,39, 15,39, 0,0, 12,34,
12,34, 12,34, 12,34, 12,34,
12,34, 15,34, 15,40, 15,40,
15,34, 15,41, 15,34, 0,0,
15,42, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 15,43,
29,28, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
15,44, 61,28, 61,28, 61,28,
61,28, 61,28, 61,28, 61,28,
61,28, 15,34, 15,40, 15,40,
15,34, 15,41, 15,34, 0,0,
15,42, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 15,43,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 16,37,
15,44, 16,38, 16,38, 16,38,
16,38, 16,38, 16,38, 16,38,
16,38, 16,39, 16,39, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 16,34, 16,40,
16,40, 16,34, 16,41, 16,34,
0,0, 16,42, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
16,45, 34,34, 34,34, 34,34,
34,34, 34,34, 34,34, 34,34,
34,34, 34,34, 34,34, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 16,34, 16,40,
16,40, 16,34, 16,41, 16,34,
0,0, 16,42, 0,0, 0,0,
0,0, 0,0, 0,0, 17,37,
16,45, 17,39, 17,39, 17,39,
17,39, 17,39, 17,39, 17,39,
17,39, 17,39, 17,39, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 17,34, 17,34,
17,34, 17,34, 17,41, 17,34,
0,0, 17,42, 40,34, 40,34,
40,34, 40,34, 40,34, 40,34,
40,34, 40,34, 40,34, 40,34,
57,67, 57,67, 57,67, 57,67,
57,67, 57,67, 57,67, 57,67,
57,67, 57,67, 0,0, 0,0,
0,0, 0,0, 17,34, 17,34,
17,34, 17,34, 17,41, 17,34,
0,0, 17,42, 18,46, 18,46,
18,46, 18,46, 18,46, 18,46,
18,46, 18,46, 18,46, 18,46,
18,47, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 18,46,
18,46, 18,46, 18,46, 18,46,
18,46, 18,48, 18,49, 18,48,
18,48, 18,48, 18,48, 18,48,
18,48, 18,48, 18,48, 18,48,
18,48, 18,48, 18,48, 18,48,
18,48, 18,48, 18,48, 18,48,
18,48, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 18,46,
18,46, 18,46, 18,46, 18,46,
18,46, 18,48, 18,49, 18,48,
18,48, 18,48, 18,48, 18,48,
18,48, 18,48, 18,48, 18,48,
18,48, 18,48, 18,48, 18,48,
18,48, 18,48, 18,48, 18,48,
18,48, 19,48, 19,48, 19,48,
19,48, 19,48, 19,48, 19,48,
19,48, 19,48, 19,48, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 19,48, 19,48,
19,48, 19,48, 19,48, 19,48,
0,0, 19,48, 0,0, 0,0,
37,55, 37,55, 37,55, 37,55,
37,55, 37,55, 37,55, 37,55,
37,55, 37,55, 58,58, 58,58,
58,58, 58,58, 58,58, 58,58,
58,58, 58,58, 58,58, 58,58,
0,0, 37,56, 19,48, 19,48,
19,48, 19,48, 19,48, 19,48,
0,0, 19,48, 31,32, 31,32,
31,32, 31,32, 31,32, 31,32,
31,32, 31,32, 31,33, 31,33,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 31,34,
31,40, 31,40, 31,34, 31,34,
31,34, 37,56, 31,42, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 31,43, 53,52, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 31,44, 53,61,
53,61, 53,61, 53,61, 53,61,
53,61, 53,61, 53,61, 31,34,
31,40, 31,40, 31,34, 31,34,
31,34, 0,0, 31,42, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 31,43, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 31,44, 32,32,
32,32, 32,32, 32,32, 32,32,
32,32, 32,32, 32,32, 32,33,
32,33, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
32,34, 32,40, 32,40, 32,34,
32,34, 32,34, 0,0, 32,42,
0,0, 0,0, 41,57, 0,0,
41,57, 0,0, 32,45, 41,58,
41,58, 41,58, 41,58, 41,58,
41,58, 41,58, 41,58, 41,58,
41,58, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
32,34, 32,40, 32,40, 32,34,
32,34, 32,34, 0,0, 32,42,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 32,45, 33,33,
33,33, 33,33, 33,33, 33,33,
33,33, 33,33, 33,33, 33,33,
33,33, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
33,34, 33,34, 33,34, 33,34,
33,34, 33,34, 0,0, 33,42,
44,60, 44,60, 44,60, 44,60,
44,60, 44,60, 44,60, 44,60,
44,60, 44,60, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 44,60, 44,60, 44,60,
44,60, 44,60, 44,60, 0,0,
33,34, 33,34, 33,34, 33,34,
33,34, 33,34, 0,0, 33,42,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 48,48, 48,48,
48,48, 48,48, 48,48, 48,48,
48,48, 48,48, 48,48, 48,48,
0,0, 44,60, 44,60, 44,60,
44,60, 44,60, 44,60, 48,48,
48,48, 48,48, 48,48, 48,48,
48,48, 54,62, 48,48, 54,62,
0,0, 0,0, 54,63, 54,63,
54,63, 54,63, 54,63, 54,63,
54,63, 54,63, 54,63, 54,63,
62,63, 62,63, 62,63, 62,63,
62,63, 62,63, 62,63, 62,63,
62,63, 62,63, 0,0, 48,48,
48,48, 48,48, 48,48, 48,48,
48,48, 0,0, 48,48, 49,48,
49,48, 49,48, 49,48, 49,48,
49,48, 49,48, 49,48, 49,48,
49,48, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
49,48, 49,48, 49,48, 49,48,
49,48, 49,48, 56,65, 49,48,
56,65, 0,0, 0,0, 56,66,
56,66, 56,66, 56,66, 56,66,
56,66, 56,66, 56,66, 56,66,
56,66, 65,66, 65,66, 65,66,
65,66, 65,66, 65,66, 65,66,
65,66, 65,66, 65,66, 0,0,
49,48, 49,48, 49,48, 49,48,
49,48, 49,48, 64,68, 49,48,
64,68, 0,0, 0,0, 64,69,
64,69, 64,69, 64,69, 64,69,
64,69, 64,69, 64,69, 64,69,
64,69, 68,69, 68,69, 68,69,
68,69, 68,69, 68,69, 68,69,
68,69, 68,69, 68,69, 0,0,
0,0};
struct yysvf yysvec[] ={
0, 0, 0,
yycrank+0, 0, 0,
yycrank+0, 0, 0,
yycrank+-1, 0, 0,
yycrank+-32, yysvec+3, 0,
yycrank+-87, 0, 0,
yycrank+-16, yysvec+5, 0,
yycrank+0, 0, yyvstop+1,
yycrank+4, 0, yyvstop+3,
yycrank+0, yysvec+8, yyvstop+6,
yycrank+-98, 0, yyvstop+8,
yycrank+-139, 0, yyvstop+10,
yycrank+186, 0, yyvstop+12,
yycrank+61, 0, yyvstop+14,
yycrank+3, 0, yyvstop+16,
yycrank+224, 0, yyvstop+18,
yycrank+297, 0, yyvstop+21,
yycrank+361, 0, yyvstop+24,
yycrank+418, 0, yyvstop+27,
yycrank+493, yysvec+18, yyvstop+30,
yycrank+0, 0, yyvstop+33,
yycrank+0, 0, yyvstop+36,
yycrank+0, 0, yyvstop+39,
yycrank+12, 0, yyvstop+41,
yycrank+0, yysvec+14, yyvstop+43,
yycrank+0, yysvec+10, 0,
yycrank+0, 0, yyvstop+45,
yycrank+-3, yysvec+10, 0,
yycrank+2, 0, 0,
yycrank+210, 0, 0,
yycrank+0, yysvec+11, 0,
yycrank+550, 0, yyvstop+47,
yycrank+623, 0, yyvstop+49,
yycrank+687, 0, yyvstop+51,
yycrank+329, yysvec+33, 0,
yycrank+5, yysvec+13, yyvstop+53,
yycrank+0, 0, yyvstop+55,
yycrank+520, 0, yyvstop+57,
yycrank+0, yysvec+16, yyvstop+59,
yycrank+0, yysvec+17, yyvstop+61,
yycrank+386, yysvec+33, yyvstop+63,
yycrank+655, yysvec+33, 0,
yycrank+0, 0, yyvstop+65,
yycrank+148, 0, yyvstop+67,
yycrank+712, 0, 0,
yycrank+0, 0, yyvstop+69,
yycrank+0, yysvec+18, yyvstop+71,
yycrank+0, 0, yyvstop+73,
yycrank+750, yysvec+18, yyvstop+75,
yycrank+807, yysvec+18, yyvstop+77,
yycrank+0, 0, yyvstop+80,
yycrank+0, yysvec+10, yyvstop+82,
yycrank+0, 0, yyvstop+84,
yycrank+591, 0, 0,
yycrank+778, 0, 0,
yycrank+21, yysvec+37, yyvstop+86,
yycrank+835, 0, 0,
yycrank+396, 0, 0,
yycrank+530, yysvec+33, yyvstop+88,
yycrank+0, yysvec+43, yyvstop+90,
yycrank+0, yysvec+44, yyvstop+92,
yycrank+265, yysvec+53, 0,
yycrank+788, 0, 0,
yycrank+0, yysvec+62, yyvstop+94,
yycrank+867, 0, 0,
yycrank+845, 0, 0,
yycrank+0, yysvec+65, yyvstop+96,
yycrank+0, yysvec+57, yyvstop+98,
yycrank+877, 0, 0,
yycrank+0, yysvec+68, yyvstop+100,
0, 0, 0};
struct yywork *yytop = yycrank+934;
struct yysvf *yybgin = yysvec+1;
char yymatch[] ={
00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,011 ,012 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
011 ,01 ,'"' ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,'+' ,01 ,'+' ,01 ,01 ,
'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
'8' ,'8' ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,'A' ,'B' ,'B' ,'A' ,'E' ,'A' ,'G' ,
'H' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'O' ,
'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,
'X' ,'G' ,'G' ,01 ,0134,01 ,'^' ,01 ,
01 ,'A' ,'B' ,'B' ,'A' ,'E' ,'A' ,'G' ,
'H' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'O' ,
'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,
'X' ,'G' ,'G' ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
0};
char yyextra[] ={
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0};
/* ncform 4.1 83/08/11 */
int yylineno =1;
# define YYU(x) x
# define NLSTATE yyprevious=YYNEWLINE
char yytext[YYLMAX];
struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
char yysbuf[YYLMAX];
char *yysptr = yysbuf;
int *yyfnd;
extern struct yysvf *yyestate;
int yyprevious = YYNEWLINE;
//int yylook()
//{
// //register struct yysvf *yystate, **lsp;
// //register struct yywork *yyt;
// struct yysvf *yystate, **lsp;
// struct yywork *yyt;
//
// struct yysvf *yyz;
// int yych;
// struct yywork *yyr;
//# ifdef LEXDEBUG
// int debug;
//# endif
// char *yylastch;
// /* start off machines */
//# ifdef LEXDEBUG
// debug = 0;
//# endif
// if (!yymorfg)
// yylastch = yytext;
// else {
// yymorfg=0;
// yylastch = yytext+yyleng;
// }
// for(;;){
// lsp = yylstate;
// yyestate = yystate = yybgin;
// if (yyprevious==YYNEWLINE) yystate++;
// for (;;){
//# ifdef LEXDEBUG
// if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
//# endif
// yyt = yystate->yystoff;
// if(yyt == yycrank){ /* may not be any transitions */
// yyz = yystate->yyother;
// if(yyz == 0)break;
// if(yyz->yystoff == yycrank)break;
// }
// *yylastch++ = yych = input();
// tryagain:
//# ifdef LEXDEBUG
// if(debug){
// fprintf(yyout,"unsigned char ");
// allprint(yych);
// putchar('\n');
// }
//# endif
// yyr = yyt;
// if ( (int)yyt > (int)yycrank){
// yyt = yyr + yych;
// if (yyt <= yytop && yyt->verify+yysvec == yystate){
// if(yyt->advance+yysvec == YYLERR) /* error transitions */
// {unput(*--yylastch);break;}
// *lsp++ = yystate = yyt->advance+yysvec;
// goto contin;
// }
// }
//# ifdef YYOPTIM
// else if((int)yyt < (int)yycrank) { /* r < yycrank */
// yyt = yyr = yycrank+(yycrank-yyt);
//# ifdef LEXDEBUG
// if(debug)fprintf(yyout,"compressed state\n");
//# endif
// yyt = yyt + yych;
// if(yyt <= yytop && yyt->verify+yysvec == yystate){
// if(yyt->advance+yysvec == YYLERR) /* error transitions */
// {unput(*--yylastch);break;}
// *lsp++ = yystate = yyt->advance+yysvec;
// goto contin;
// }
// yyt = yyr + YYU(yymatch[yych]);
//# ifdef LEXDEBUG
// if(debug){
// fprintf(yyout,"try fall back character ");
// allprint(YYU(yymatch[yych]));
// putchar('\n');
// }
//# endif
// if(yyt <= yytop && yyt->verify+yysvec == yystate){
// if(yyt->advance+yysvec == YYLERR) /* error transition */
// {unput(*--yylastch);break;}
// *lsp++ = yystate = yyt->advance+yysvec;
// goto contin;
// }
// }
// if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
//# ifdef LEXDEBUG
// if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
//# endif
// goto tryagain;
// }
//# endif
// else
// {unput(*--yylastch);break;}
// contin:
//# ifdef LEXDEBUG
// if(debug){
// fprintf(yyout,"state %d char ",yystate-yysvec-1);
// allprint(yych);
// putchar('\n');
// }
//# endif
// ;
// }
//# ifdef LEXDEBUG
// if(debug){
// fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
// allprint(yych);
// putchar('\n');
// }
//# endif
// while (lsp-- > yylstate){
// *yylastch-- = 0;
// if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
// yyolsp = lsp;
// if(yyextra[*yyfnd]){ /* must backup */
// while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
// lsp--;
// unput(*yylastch--);
// }
// }
// yyprevious = YYU(*yylastch);
// yylsp = lsp;
// yyleng = yylastch-yytext+1;
// yytext[yyleng] = 0;
//# ifdef LEXDEBUG
// if(debug){
// fprintf(yyout,"\nmatch ");
// sprint(yytext);
// fprintf(yyout," action %d\n",*yyfnd);
// }
//# endif
// return(*yyfnd++);
// }
// unput(*yylastch);
// }
// if (yytext[0] == 0 /* && feof(yyin) */)
// {
// yysptr=yysbuf;
// return(0);
// }
// yyprevious = yytext[0] = input();
// if (yyprevious>0)
// output(yyprevious);
// yylastch=yytext;
//# ifdef LEXDEBUG
// if(debug)putchar('\n');
//# endif
// }
// }
//yyback(p, m)
// int *p;
//int yyback(int *p, int m)
//{
//if (p==0) return(0);
//while (*p)
// {
// if (*p++ == m)
// return(1);
// }
//return(0);
//}
/* the following are only used in the lex library */
//yyinput(){
// return(input());
// }
yyoutput(c)
int c; {
output(c);
}
yyunput(c)
int c; {
unput(c);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -