Python实现Parsec吗?
我最近用Python写了一个解析器,使用了Ply(这是yacc在Python中的重写版)。当我快完成这个解析器的时候,我发现我需要在解析过程中进行一些查找,以便给词法分析器提供信息。如果不进行这样的查找,我就无法正确解析这个语言中的字符串。
因为我可以通过语法规则控制词法分析器的状态,所以我想在解析模块中使用查找表来解决我的问题,但这可能会变得很难维护和测试。所以我想了解一些其他的选择。
在Haskell中,我会使用Parsec,这是一个解析函数的库(被称为组合子)。那么在Python中有没有Parsec的实现呢?或者有没有其他高质量的库,里面有丰富的解析功能,这样我就可以在Python中构建一个上下文敏感的解析器?
补充说明:我所有的上下文无关解析尝试都失败了。因此,我不指望ANTLR在这里能有用。