Boost Spirit X3 是否支持左递归?



递归下降解析器的缺点/实现挑战之一是处理左递归,例如

<expr> :=    <expr> '+' <num> 
|  <num>

解析器需要先解析一个 expr,然后才能解析一个 expr...

现在,Boost::Spirit::X3 生成递归下降解析器。这是否意味着它不支持左递归,或者它是否有解决方法?

注意:左递归可以(经常?总是?(事先从语法中删除(就像在这个问题的解决方案中一样(,但这不是我要问的。

Spirit 根本不会重写你的语法,它会完全按照你写的内容运行。

相关内容

  • 没有找到相关文章

最新更新