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 + -
显示快捷键?