Python中Python的ISO人类可读解析器

3
我正在寻找一个使用易于阅读的Python编写的解析器(最好是v. 2.7),与性能或灵活性无关。在这里,解析的准确性/正确性以及解析器代码的清晰度更为重要。
在线搜索后,我发现了一些生成人类可读的Python代码的解析器生成器,但我没有找到相应的Python语法规则(据我所见,它们都遵循不同的语法规范约定)。无论如何,即使我能找到适合我的要求(人类可读的Python代码)的解析器生成器/Python语法组合,一个符合我的要求的现成的Python解析器自然更加可取。
有什么建议吗? 感谢!
2个回答

3

谢谢,一开始看起来很有前途,但是据我所知,PythonParser没有文档,而且我无法从阅读源代码中弄清楚如何使用它(如果可读性是一个要求的话,这不是一个好迹象)... - kjo
@kjo - 不确定您所说的“未记录”是什么意思(=您期望找到什么)。源代码中有关于模块工作原理的相当多的信息。由于编程语言解析器通常不是直接供使用该语言编码的开发人员使用的,因此我怀疑您是否会在形式上为“网站文档”的大量内容中找到 - 例如,您可以在http://docs.python.org/浏览的内容...或者我误解了您的评论? - mac
我找不到如何生成实例化解析器对象所需的参数;特别是它的 __init__有一个很难确定的“state”参数。源代码当然没有说这个参数应该是什么(哪个类等)。经过大量搜索,我能够在几个页面上广泛散布的一些(非常高级的)信息中找到有关这些“状态”的一些片段,但是不足以告诉我如何实例化状态,以便我可以实例化解析器并向其传递一个Python源代码字符串。如果您知道如何做到这一点,请告诉我。 - kjo

2

我认为你应该将精力投入到ast中。以下是来自Python文档的摘录。

ast模块帮助Python应用程序处理Python抽象语法语法树。抽象语法本身可能会随着每个Python版本而改变;此模块有助于以编程方式找出当前语法的样子。


我不明白这如何回答我的问题。ast.parse仅仅是调用内置的compile函数而已。这怎么成为“Python中可读性强的解析器”呢? - kjo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接