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

📄 2.lex

📁 汉程语言的词法分析器的实现 用flex实现
💻 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 + -