做编译原理作业时需要用到flex和bison,于是在Linux下安装了flex和bison
apt install flex bison
新建一个文件,名为test.l
%%
[0-9]+ printf("?");
# return 0;
. ECHO;
%%
int main(int argc, char* argv[]) {
yylex();
return 0;
}
int yywrap() {
return 1;
}
运行如下命令:
flex test.l
gcc -o test lex.yy.c
./test
然后在终端不停的敲入任意键并回车,可以发现,敲入的内容中,除数字外的字符都被原样的输出了,而每串数字字符都被替换成 ? 了。最后敲入 # 后程序退出了。如下:
test
test
1245
?
fdsaf4578
fdsaf?
...
...
#

在完成编译原理作业的过程中,需要在Ubuntu环境中安装flex和bison。通过创建名为test.l的文件并运行相应命令,实现了输入字符的处理:非数字字符原样输出,数字被替换为'?',输入'#'则程序结束。参考了关于用flex进行词法分析的教程。
485

被折叠的 条评论
为什么被折叠?



