📄 lex.txt
字号:
%{
#include "stdio.h"
#include "stdlib.h"
%}
char_const \'((\\n)|.|(\\t)|(\\b)|(\\r)|(\\f)|(\\\\)|(\\'))\'
delim [ \t\n]
ws {delim}+
letter [A-Za-z]
digit [0-9]
id {letter}({letter}|{digit})*
number {digit}+(\.{digit}+)?(E[+\-]?{digit}+)?
string \"[^\n}]*\"
comment "/*"([^\*]|(\*)*[^\*/])*(\*)*"*/"
%%
{ws} {}
{comment} {}
void {fprintf(yyout,"KEYWORD void\n");}
int {fprintf(yyout,"KEYWORD int\n");}
char {fprintf(yyout,"KEYWORD char\n");}
if {fprintf(yyout,"KEYWORD if\n");}
else {fprintf(yyout,"KEYWORD else\n");}
then {fprintf(yyout,"KEYWORD then\n");}
break {fprintf(yyout,"KEYWORD break\n");}
case {fprintf(yyout,"KEYWORD case\n");}
auto {fprintf(yyout,"KEYWORD auto\n");}
const {fprintf(yyout,"KEYWORD const\n");}
continue {fprintf(yyout,"KEYWORD continue\n");}
default {fprintf(yyout,"KEYWORD default\n");}
do {fprintf(yyout,"KEYWORD do\n");}
for {fprintf(yyout,"KEYWORD for\n");}
goto {fprintf(yyout,"KEYWORD goto\n");}
return {fprintf(yyout,"KEYWORD return\n");}
switch {fprintf(yyout,"KEYWORD switch\n");}
{char_const} {fprintf(yyout,"CHAR_CONST %s\n",yytext);}
{string} {fprintf(yyout,"STRING %s\n",yytext);}
{id} {fprintf(yyout,"ID %s\n",yytext);}
{number} {fprintf(yyout,"NUM %s\n",yytext);}
"<" {fprintf(yyout,"REL_OP <\n");}
">" {fprintf(yyout,"REL_OP >\n");}
"<=" {fprintf(yyout,"REL_OP <=\n");}
">=" {fprintf(yyout,"REL_OP >=\n");}
"==" {fprintf(yyout,"REL_OP ==\n");}
"=" {fprintf(yyout,"PUN =\n");}
";" {fprintf(yyout,"PUN ;\n");}
":" {fprintf(yyout,"PUN :\n");}
"(" {fprintf(yyout,"PUN (\n");}
")" {fprintf(yyout,"PUN )\n");}
"{" {fprintf(yyout,"PUN {\n");}
"}" {fprintf(yyout,"PUN }\n");}
"+" {fprintf(yyout,"PUN +\n");}
"-" {fprintf(yyout,"PUN -\n");}
"*" {fprintf(yyout,"PUN *\n");}
"/" {fprintf(yyout,"PUN /\n");}
"," {fprintf(yyout,"PUN ,\n");}
"#" {fprintf(yyout,"PUN #\n");}
%%
void main(int argc,char *argv[])
{
if(argc!=3)
{
printf("input error\n");
exit(1);
}
yyin=fopen(argv[1],"r");
yyout=fopen(argv[2],"w");
yylex();
}
int yywrap()
{
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -