LL1语法隐藏含糊不清

时间:2015-11-20 15:30:18

标签: parsing compiler-construction grammar

我一直在尝试为以下语法生成解析器表:

  

S-> LP; ë

     

LP-> LP; num | NUM

     

E-> num | var |有趣(E)

消除左递归的必要性是显而易见的,所以最终:

  

S-> LP; ë

     

LP-> num LP'

     

LP' - > ; num LP'| λ

     

E-> num | var |有趣(E)

问题出现在为LP和LP'寻找第一和随后,其中:

  

First(LP)= num

     

关注(LP)=;

     

First(LP')=; λ

     

关注(LP')=;

由于LP'首先使用λ,这意味着在创建解析表期间,我将从LP'中获取;是:

  

LP' - > ; num LP'

     

LP' - > λ

因此造成歧义。有什么方法可以解决这个问题吗?我已经研究过以前的问题,并且提到了消除λ,但是我没有能够以消除歧义的方式这样做。

提前感谢任何帮助。

0 个答案:

没有答案