当前位置: 技术问答>linux和unix
linux下的lex&yacc
来源: 互联网 发布时间:2017-01-18
本文导语: 最近刚学LEX&YACC 有个问题问我一直都想不明白 在写好了.l和.y文件后 在Linux下lex a.l yacc b.y 就会生成对应的lex.yy.c y.tab.c y.tab.h文件 但是看网上还有资料说lex&yacc的GNU版本分别是flex&Bison 也有人说在Unix下是lex,Lin...
最近刚学LEX&YACC
有个问题问我一直都想不明白
在写好了.l和.y文件后
在Linux下lex a.l
yacc b.y
就会生成对应的lex.yy.c y.tab.c y.tab.h文件
但是看网上还有资料说lex&yacc的GNU版本分别是flex&Bison
也有人说在Unix下是lex,Linux下是flex
到底这些版本是怎么界定的?
在Linux下使用lex与flex这两个命令是一回事么?还是两回事?
有个问题问我一直都想不明白
在写好了.l和.y文件后
在Linux下lex a.l
yacc b.y
就会生成对应的lex.yy.c y.tab.c y.tab.h文件
但是看网上还有资料说lex&yacc的GNU版本分别是flex&Bison
也有人说在Unix下是lex,Linux下是flex
到底这些版本是怎么界定的?
在Linux下使用lex与flex这两个命令是一回事么?还是两回事?
|
lz在学编译原理吗?
以前做个这个课设,早忘了
实际试下就知道了,纠结名字完全没有必要
Linux下确实是叫flex&Bison
lex -V
和flex -V的结果是一样的
名字不重要,功能都一样
以前做个这个课设,早忘了
实际试下就知道了,纠结名字完全没有必要
Linux下确实是叫flex&Bison
lex -V
和flex -V的结果是一样的
名字不重要,功能都一样
|
的确,linux使用的其实就是flex, lex只是一个指向flex的链接
[root@bat ~]# ls -l /usr/bin/lex
lrwxrwxrwx 1 root root 4 2008-02-05 00:21 /usr/bin/lex -> flex
至于bison与yacc,在linux下都有,只是两种不同的实现而已。
bison是GUN版的语法分析器,yacc是Berkeley版的语法分析器,两者实现功能类似,可能会有微小的语义差别。
所以你直接用lex与yacc就可以了
[root@bat ~]# ls -l /usr/bin/lex
lrwxrwxrwx 1 root root 4 2008-02-05 00:21 /usr/bin/lex -> flex
至于bison与yacc,在linux下都有,只是两种不同的实现而已。
bison是GUN版的语法分析器,yacc是Berkeley版的语法分析器,两者实现功能类似,可能会有微小的语义差别。
所以你直接用lex与yacc就可以了