有谁知道可以解析 C 代码的最弱的广泛使用的解析算法家族是什么?即C语法是LL(1)、LR(0)、LALR(1)等吗?我很好奇,因为作为一个副项目,我有兴趣为其中一个系列编写一个解析器生成器,并且希望最终能够为另一个副项目解析 C 代码。
看起来Bison 使用 LALR(1) http://www.informatik.uni-hamburg.de/RZ/software/gnu/gcc/bison_15.html#GLOSS21解析器。 LALR 解析器比 LL 解析器更健壮,但也更复杂。由此我怀疑 LALR(1) 可能是可以解析 C 代码的最弱的解析算法。
除非你真的决定推出自己的识别器。ANTLR HTTP://WWW.ANTLR.ORG可能是你这样做的最佳选择。 ANTLR 使用 LL* 算法(实际上就是 LALR)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)