Art*_*ich 19
我们在固件项目中使用Lemon的原因是:
当然柠檬不是银弹,它的应用范围有限.缺点包括:
在做出选择之前权衡利弊.我做了我的;-)
有趣的发现!我实际上没有使用它,所以评论是基于阅读文档.
重新设计使得词法分析与解析分开进行,这似乎是有价值的.特别是,它有可能简化操作,例如处理多个或嵌套的源文件.基于Lex的yywrap()机制不太理想.它避免了所有全局变量,并且仔细考虑内存分配和释放控制应该有利于它(它允许分配器和解除分配器的选择也极大地帮助 - 至少对于我工作的环境,内存分配总是一个问题) .
重新思考如何组织规则以及如何识别终端是一个好主意.
总而言之,它看起来像是经过深思熟虑的Bison重新设计.
根据引用的网页,它在公共领域.