📄 printyylex.cc
字号:
/*************************************************************************** printyylex.cc - generated from tablecomp.h using printyylex.sed ------------------- begin : Mon Apr 17 2000 copyright : (C) 2000 by Jan Nikit靚ko email : xnikit00@stud.fee.vutbr.cz ***************************************************************************//*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/#include <stdio.h> #include <string> #include <vector> #include "tablecomp.h" struct { int lx; const char *ls; } lex2str[] = { { 257, "ENDIAN" }, { 258, "ENUM" }, { 259, "INSTFORMAT" }, { 260, "OPERAND" }, { 261, "OPTION" }, { 262, "GINSTPREFIX" }, { 263, "OPERPREFIX" }, { 264, "INSTRUCTIONS" }, { 265, "IF" }, { 266, "ELSE" }, { 267, "EACHINSTRBEGIN" }, { 268, "LX_SET" }, { 269, "LX_PUT" }, { 270, "LX_OR" }, { 271, "NUMBER" }, { 272, "STRING" }, { 273, "IDENT" }, { 274, "ASSIGN" }, { 275, "OPERVALUE" }, { 276, "RETURN" }, { 277, "OPERVALOPT" }, { 278, "NUMBERBASE" }, { 279, "LX_BNOT" }, { 280, "LX_LNOT" }, { 281, "LX_MUL" }, { 282, "LX_DIV" }, { 283, "LX_MOD" }, { 284, "LX_ADD" }, { 285, "LX_SUB" }, { 286, "LX_SHL" }, { 287, "LX_SHR" }, { 288, "LX_LESS" }, { 289, "LX_GRTR" }, { 290, "LX_LEEQ" }, { 291, "LX_GREQ" }, { 292, "LX_EQUA" }, { 293, "LX_NEQU" }, { 294, "LX_BAND" }, { 295, "LX_BXOR" }, { 296, "LX_BOR" }, { 297, "LX_LAND" }, { 298, "LX_LOR" }, { 299, "UNARY" }, { -1, 0 } }; extern int yylex(); extern char yytext[]; int printyylex() { int r = yylex(); if( r >= 0 && r < 256 ) fprintf(stderr, "yylex() == '%c' == %d\n", r, r); else { for( int i=0; lex2str[i].ls!=0; i++ ) if( lex2str[i].lx == r ) { if( r == STRING ) fprintf(stderr, "yylex() == %s == %d == %s\"\n", lex2str[i].ls, r, yytext); else if( r == IDENT || r == NUMBER ) { fprintf(stderr, "yylex() == %s == %d == \"%s\"\n", lex2str[i].ls, r, yytext); } else fprintf(stderr, "yylex() == %s == %d\n", lex2str[i].ls, r); return r; } fprintf(stderr, "yylex() == %d\n", r); } return r; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -