📄 2.lex
字号:
%{
#include "stdlib.h"
#include "string.h"
#define HASHSIZE 256
#define GLOBAL 0
int lineno = 1;
%}
delim [ \t\n]
ws {delim}+
/*letter [A-Za-z]*/
unit [\x90-\xFF][\x90-\xFF]
digit [0-9]
/*id {letter}({letter}|{digit})**/
id {unit}*
number {digit}+(\.{digit}+)?(E[+\-]?(digit)+)?
comment (\#[^\n]*)|(\/\*(((\*)*[^\*\/]+(\/)*)*|(\*)*|(\/)*)\*\/)|(\/\/[^\n]*)
%%
"\n" {lineno++;}
{comment} {}
{ws} {}
如果|否则|循环|整型|返回|空型 {printf("保留字: %s\n",yytext);}
{id} {printf("标识符: %s\n",yytext);}
{number} {printf("整数: %s\n",yytext);}
";"|","|"("|")"|"["|"]"|"{"|"}" {printf("分解符: %s\n",yytext);}
"<"|">"|"<="|">="|"=="|"!="|"="|"+"|"-"|"*"|"/" {printf("运算符: %s\n",yytext);}
%%
int yywrap()
{
return 1;
}
int main()
{
yyin = fopen("D:\\1\\yyin.txt", "r");
yyout = fopen("yyout.txt", "w");
yylex();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -