rexp → rexp'|'T1 | T1
T1 → T1' 'T2 | T2
T2 → T2* | T3
T3 → (rexp) | letter
letter = [a-zA-Z]
利用课本P119页程序清单4-3的算法,消除上述规则中的左递归,结果如下:
rexp → T1exp'
exp' → '|' T1rexp' | ε
T1 → T2T1'
T1' → ' 'T2T1' | ε
T2 → T3T2'
T2' → *T2'|ε
根据上述规则书写程序:
完整代码: /Files/Plator/rexp.rar