标签: parsing context-free-grammar ll left-recursion
我从给定的语法中删除了左递归。但是,现在我必须先找出来,然后再创建一个解析表。
原件: S -> aSb | bSa | SS | epsilon
S -> aSb | bSa | SS | epsilon
新功能:删除左递归后: S -> aSbSS' | bSaSS' | S'和 S'-> SS' | epsilon
S -> aSbSS' | bSaSS' | S'
S'-> SS' | epsilon
我正在尝试先做(S)= {a,b}然后先做(S') 但是first(S)是first(SS')。现在,这变得递归了。对于非终端S和S',我该如何找到第一个并进行跟踪?