lex.txt
来自「从网上下载lex工具源代码」· 文本 代码 · 共 44 行
TXT
44 行
PUN ","|";"|"("|")"|"{"|"}"|"["|"]"|"->"|"."|"!"|"~"|"++"|"--"|"*"|"&"|"sizeof"|"/"|"%"|"+"|"-"|"&"|"^"|"|"|"&"|"||"|"+="|"-="|"*="|"/="|"%="|">>="|"<<="|"&="|"^="|"|="|"="
digit [0-9]
letter [A-Za-z]
other_char [!-@\[-~]
id ({letter}|[_])({letter}|{digit}|[_]|"printf"|"main"|"long")*
string {({letter}|{digit}|{other_char})+}
int_num {digit}+
STRING ("""&{digit|letter|other_char|id|string|int_num}&""")
space [ |\t|\n]+
comment "/"[^/]*"/"
%%
{space}
{comment}
{STRING} {printf("STRING %s\n",yytext);}
\'([!-~])*\' {printf("CHAR_CONST %s\n",yytext);}
"auto"|"double"|"int"|"struct"|"break"|"else"|"switch"|"case"|"enum"|"register"|"typedef"|"char"|"extern"|"return"|"union"|"const"|"float"|"short"|"unsigned"|"continue"|"for"|"signed"|"void"|"default"|"goto"|"sizeof"|"do"|"if"|"static"|"while" {printf("KEYWORD %s\n",yytext);}
\"([!-~])*\" {printf("STRING %s\n",yytext);}
-?{int_num}[.]{int_num}?([E][+|-]?{int_num})? {printf("CONST_real %s\n",yytext);}
"0x"?{int_num} {printf("NUM %s\n",yytext);}
{PUN} {printf("PUN %s\n",yytext);}
{id} {printf("ID %s\n",yytext);}
">"|"<"|">="|"<="|"=="|"!=" {printf("REL_OP %s\n",yytext);}
{digit}({letter})+ {printf("error1:%s\n",yytext);}
%%
#include <stdio.h>
#include <ctype.h>
Upper(char *s,int l)
{
int i;
for(i=0;i<l;i++)
{
s[i]=toupper(s[i]);
}
}
yywrap()
{
return 1;
}
int main(){
yylex();
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?