删除左直接和间接递归

时间:2015-02-12 05:24:27

标签: parsing compiler-construction context-free-grammar left-recursion

    S->(L)|a
    L->L,S|S

    //Step 1

    i=1,j=1

    //do nothing



    //Step 2 

    //Substituting S in L production by productions of S
    i=2,j=1 to 1

    S->(L)|a
    L->L,(L)|(L)|L,a|a

    //removing left recursion

    S->(L)|a

    L->aA'|(L)A'             

    A'->,(L)A'|,aA'|epsilon

但A'production

中的间接递归仍然存在

那么如何删除它或我做错了什么

这是编译器原则实践和工具中的问题4.3.1

0 个答案:

没有答案