⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vylex.yy.c

📁 編譯器的虛擬yacc工具
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <stdio.h>#include <stdlib.h># define U(x) x# define NLSTATE yyprevious=YYNEWLINE# define BEGIN yybgin = yysvec + 1 +# define INITIAL 0# define YYLERR yysvec# define YYSTATE (yyestate-yysvec-1)# define YYOPTIM 1# ifndef YYLMAX # define YYLMAX BUFSIZ# endif #ifndef __cplusplus# define output(c) (void)putc(c,yyout)#else# define lex_output(c) (void)putc(c,yyout)#endif#if defined(__cplusplus) || defined(__STDC__)#if defined(__cplusplus) && defined(__EXTERN_C__)extern "C" {#endif	int yyback(int *, int);	int yyinput(void);	int yylook(void);	void yyoutput(int);	int yyracc(int);	int yyreject(void);	void yyunput(int);	int yylex(void);#ifdef YYLEX_E	void yywoutput(wchar_t);	wchar_t yywinput(void);#endif#ifndef yyless	int yyless(int);#endif#ifndef yywrap	int yywrap(void);#endif#ifdef LEXDEBUG	void allprint(char);	void sprint(char *);#endif#if defined(__cplusplus) && defined(__EXTERN_C__)}#endif#ifdef __cplusplusextern "C" {#endif	void exit(int);#ifdef __cplusplus}#endif#endif# define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}# define yymore() (yymorfg=1)#ifndef __cplusplus# define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):(yycharno++,getc(yyin)))==10?(yylineno++,yybline=yycharno,yytchar):yytchar)==EOF?0:yytchar)#else# define lex_input() (((yytchar=yysptr>yysbuf?U(*--yysptr):(yycharno++,getc(yyin)))==10?(yylineno++,yybline=yycharno,yytchar):yytchar)==EOF?0:yytchar)#endif#define ECHO fprintf(yyout, "%s",yytext)# define REJECT { nstr = yyreject(); goto yyfussy;}int yyleng;#define YYISARRAYchar yytext[YYLMAX];int yymorfg;extern char *yysptr, yysbuf[];int yytchar;FILE *yyin = {stdin}, *yyout = {stdout};extern long yycharno,yytok,yybline;struct yysvf { 	struct yywork *yystoff;	struct yysvf *yyother;	int *yystops;};struct yysvf *yyestate;extern struct yysvf yysvec[], *yybgin;#include <stdio.h>#include "vy.tab.h"int num_dividers = 0;int buffer_size;# define COMMENT 2# define YYNEWLINE 10yylex(){int nstr; extern int yyprevious;#ifdef __cplusplus/* to avoid CC and lint complaining yyfussy not being used ...*/static int __lex_hack = 0;if (__lex_hack) goto yyfussy;#endifwhile((nstr = yylook()) >= 0)yyfussy: switch(nstr){case 0:if(yywrap()) return(0); break;case 1:# line 14 "./yacc.l"	return(KEYWORD);break;case 2:# line 15 "./yacc.l"	return(KEYWORD);break;case 3:# line 16 "./yacc.l"	return(KEYWORD);break;case 4:# line 17 "./yacc.l"	return(KEYWORD);break;case 5:# line 18 "./yacc.l"	return(KEYWORD);break;case 6:# line 19 "./yacc.l"	return(KEYWORD);break;case 7:# line 20 "./yacc.l"	return(KEYWORD);break;case 8:# line 21 "./yacc.l"	return(KEYWORD);break;case 9:# line 22 "./yacc.l"	return(KEYWORD);break;case 10:# line 23 "./yacc.l"	return(SPECIAL_KEYWORD);break;case 11:# line 24 "./yacc.l"	return(SPECIAL_KEYWORD);break;case 12:# line 25 "./yacc.l"	return(KEYWORD);break;case 13:# line 26 "./yacc.l"	return(KEYWORD);break;case 14:# line 27 "./yacc.l"	return(KEYWORD);break;case 15:# line 28 "./yacc.l"	return(KEYWORD);break;case 16:# line 29 "./yacc.l"	return(KEYWORD);break;case 17:# line 30 "./yacc.l"	return(KEYWORD);break;case 18:# line 31 "./yacc.l"	return(KEYWORD);break;case 19:# line 32 "./yacc.l"	return(KEYWORD);break;case 20:# line 33 "./yacc.l"	return(KEYWORD);break;case 21:# line 34 "./yacc.l"	return(KEYWORD);break;case 22:# line 35 "./yacc.l"	return(POUND_KEYWORD);break;case 23:# line 36 "./yacc.l"	return(BRACKET_KEYWORD);break;case 24:# line 37 "./yacc.l"		return(CHAR);break;case 25:# line 38 "./yacc.l"	return(CHAR);break;case 26:# line 39 "./yacc.l"	return(STRING);break;case 27:# line 40 "./yacc.l"		BEGIN COMMENT;break;case 28:# line 41 "./yacc.l"		return(START_C);break;case 29:# line 42 "./yacc.l"		return(STOP_C);break;case 30:# line 43 "./yacc.l"		return(DIVIDER);break;case 31:# line 44 "./yacc.l"		return(LHS);break;case 32:# line 45 "./yacc.l"	return(RHS);break;case 33:# line 46 "./yacc.l"              return(UNION_T);break;case 34:# line 47 "./yacc.l"              return(TOKEN_T);break;case 35:# line 48 "./yacc.l"               return(LEFT_T);break;case 36:# line 49 "./yacc.l"              return(RIGHT_T);break;case 37:# line 50 "./yacc.l"               return(TYPE_T);break;case 38:# line 51 "./yacc.l"           return(NONASSOC_T);break;case 39:# line 52 "./yacc.l"               return(PREC_T);break;case 40:# line 53 "./yacc.l"         return(NAME);break;case 41:# line 54 "./yacc.l"		;break;case 42:# line 55 "./yacc.l"		return(yytext[0]);break;case 43:# line 56 "./yacc.l"		BEGIN INITIAL;break;case 44:# line 57 "./yacc.l"		;break;case 45:# line 58 "./yacc.l"		;break;case -1:break;default:(void)fprintf(yyout,"bad switch yylook %d",nstr);} return(0); }/* end of yylex */int yyvstop[] = {0,42,0, 41,42,0, 41,0, 42,0, 42,0, 42,0, 42,0, 42,0, 40,42,0, 42,0, 40,42,0, 40,42,0, 40,42,0, 40,42,0, 40,42,0, 40,42,0, 40,42,0, 40,42,0, 40,42,0, 40,42,0, 40,42,0, 40,42,0, 42,-22,0, 45,0, 44,45,0, 44,0, 45,0, 26,0, 31,0, 32,0, 30,0, 28,0, 29,0, 27,0, 40,0, 23,0, 40,0, 40,0, 40,0, 40,0, 40,0, 40,0, 40,0, 40,0, 40,0, 40,0, 2,40,0, 40,0, 40,0, 40,0, 40,0, 40,0, 40,0, 40,0, -22,0, 22,0, 43,0, 24,0, 24,0, 40,0, 40,0, 40,0, 40,0, 40,0, 40,0, 40,0, 40,0, 40,0, 40,0, 40,0, 18,40,0, 40,0, 12,40,0, 40,0, 40,0, 40,0, 40,0, 40,0, 40,0, 25,0, 20,40,0, 40,0, 40,0, 6,40,0, 9,40,0, 40,0, 40,0, 3,40,0, 21,40,0, 40,0, 40,0, 40,0, 13,40,0, 40,0, 40,0, 40,0, 40,0, 40,0, 35,0, 39,0, 37,0, 40,0, 10,40,0, 40,0, 40,0, 40,0, 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -