WEB开发网
开发学院软件开发Python 了解 DParser for Python 阅读

了解 DParser for Python

 2007-03-29 12:13:45 来源:WEB开发网   
核心提示:首先初步了解 DParser 这一由 J. Plevyak 编写的简单而强大的解析工具,然后了解用于 Python 的DParser,了解 DParser for Python,它为 Python 程序员提供了一个访问 DParser 的无缝接口,并看看它与上一期中介绍的解析器的比较,对于特别大的被解析的文档来说,这种

首先初步了解 DParser 这一由 J. Plevyak 编写的简单而强大的解析工具。然后了解用于 Python 的DParser,它为 Python 程序员提供了一个访问 DParser 的无缝接口,并看看它与上一期中介绍的解析器的比较。语法规则以类似于 Spark 或 PLY 的方式通过 Python 函数文档字符串加入到 DParser 中。

有很多可用的 Python 解析器程序库。我已经在本专栏中讨论过 mx.TextTools、SimpleParse 和 SPARK,并在我的书中介绍了 PLY(请参阅 参考资料,获得这些文档的链接)。无需考虑,我也知道有 PyGgy、Yapps、PLEX、PyLR、PyParsing 和 TPG,而且我还模糊地记得读过半打其他解析器的声明。用户可能会对此门类感到失落,不是因为缺少高质量程序库,而是太多了。

DParser 与所有其他解析器的不同之处是什么?是这样,类似于 PLY 和 Spark,用于 Python 的 DParser 使用函数文档字符串来表示其结果(productions)。这种风格使得您可以将动作代码直接插入到一个结果中,以处理当一个特定的语法规则得到满足时将发生的事件。与 PLY 或 Spark 相反,DParser 本身是用 C 编写的,因而可能会比纯粹的 Python 解析器快得多。用于 Python 的 DParser 是底层的 C 程序库之外的一个非常精简的包装器(wrapper) —— 对 Python 的回调需要一些额外的时间,但是基本的解析是以 C 语言的速度来进行的。不过,就本文而言,我没有尝试进行任何具体的基准测试。所以,相对于其他解析器来说,DParser 到底有多快或多慢不是我所能直接评论的。

就我自己而言,我仍是非常喜欢 SimpleParse 的方法。SimpleParse 是快速的 mx.TextTools 程序库(也是用 C 所编写的)的一个包装器,可以将 EBNF 语法语言从 Python 代码中完全分离出来。一般来说,使用 SimpleParse 就意味着在一个函数调用中生成一个解析树,然后在分开的代码中遍历这个树。对于特别大的被解析的文档来说,这种两步方法可能是低效的,但是我发现这样更容易理解编写的代码。

1 2 3 4 5 6  下一页

Tags:了解 DParser for

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接