@H_403_1@有没有人知道广泛使用的解析算法最弱的家庭可以解析C代码?那就是C语法LL(1),LR(0),LALR(1)等?我很好奇,因为作为一个侧面项目,我有兴趣为这些家庭之一编写一个解析器生成器,并希望最终能够解析另一个侧面项目的C代码.
解决方法
似乎是
Bison uses an LALR(1)解析器. LALR解析器比LL解析器更强大,但也更复杂.从这里我怀疑LALR(1)可能是解析C代码最弱的解析算法.
除非你真的设置滚动自己的识别器. ANTLR可能是你最好的选择. ANTLR使用LL *算法(实际上是LALR).