如何在无上下文语法中消除左递归?

时间:2013-03-21 01:04:09

标签: regex parsing context-free-grammar recursive-descent

如何消除此CFG中的左递归?

<RE> -> <RE>'|'<CONCAT> | <CONCAT>
<CONCAT> -> <CONCAT><KLEEN> | <KLEEN>
<KLEEN> -> <KLEEN>'*' | <ELEM>
<ELEM> -> 'a' | 'b' | 'c' | 'd' | '('<RE>')'

1 个答案:

答案 0 :(得分:1)

查看维基百科上的Removing Left Recursion部分。

以下是关于确切如何操作的描述;

Moore,Robert C.(2000年5月)。 “从无上下文语法中删除左递归”。第六届应用自然语言处理会议:249-255。 http://aclweb.org/anthology-new/A/A00/A00-2033.pdf