📄 itbl-lex.l
字号:
/* itbl-lex.l Copyright 1997, 1998 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. GAS 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, or (at your option) any later version. GAS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GAS; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */%{#include <stdio.h>#include <string.h>#include <stdlib.h>#include <ctype.h>#include "itbl-parse.h"#ifdef DEBUG#define DBG(x) printf x#define MDBG(x) printf x#else#define DBG(x)#define MDBG(x)#endifint insntbl_line = 1;%}ALNUM [A-Za-z0-9_]DIGIT [0-9]ALPHA [A-Za-z_]HEX [0-9A-Fa-f]%%"creg"|"CREG" { return CREG; }"dreg"|"DREG" { return DREG; }"greg"|"GREG" { return GREG; }"immed"|"IMMED" { return IMMED; }"addr"|"ADDR" { return ADDR; }"insn"|"INSN" { return INSN; }"p"{DIGIT} { yytext[yyleng] = 0; yylval.processor = strtoul (yytext+1, 0, 0); return PNUM; }{DIGIT}+ { yytext[yyleng] = 0; yylval.num = strtoul (yytext, 0, 0); return NUM; }"0x"{HEX}+ { yytext[yyleng] = 0; yylval.num = strtoul (yytext, 0, 0); return NUM; }{ALPHA}{ALNUM}* { yytext[yyleng] = 0; yylval.str = strdup (yytext); return ID; }";"|"#" { int c; while ((c = input ()) != EOF) { if (c == '\n') { unput (c); break; } } }"\n" { insntbl_line++; MDBG (("in lex, NL = %d (x%x)\n", NL, NL)); return NL; }" "|"\t" { }. { MDBG (("char = %x, %d\n", yytext[0], yytext[0])); return yytext[0]; }%%#ifndef yywrapint yywrap () { return 1; }#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -