lex yacc

最近接触到一个解析的任务,使用python的PLY模块写的。

不过要想学会PLY,首先要知道什么是lex,什么是yacc。

学过编译原理的同学应该记得,编译器的工作过程是这样的

源代码-->词法分析-->单词流-->语法分析-->语法树-->语义分析-->语义分析结果。


源代码通过词法分析变成单词流,单词流通过语法分析变成语法树,语法树通过语义分析得到结果。

其中lex就是用来生成词法分析器的,而yacc是用来生成语法分析器的。(那么语义分析呢?我现在也不清楚)

lex,yacc的介绍参考这里

关于上面链接中的代码在我的github中,你只需要一个make,就可以得到一个具备词法分析和语法分析的程序。


好了,知道了lex,yacc ,那么参考这篇文章学习PLY吧。


ps:

解决问题要思考从哪里入手。

比如这里的PLY,如果一上来就看PLY怎么使用,可能就会觉得不知所云。因为基本的概念都不懂,建立在基础之上的东西学起来还是有点困难的。

所以要先知道什么是lex,yacc。然后再去学习PLY就轻松多了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值