是否有适用于Python的标准词法分析器/解析器工具?

时间:2010-04-12 12:36:23

标签: python compiler-construction parsing tex bnf

志愿者工作要求我们将大量LaTeX文档转换为ePub文件格式。这是一系列开源小说书,到目前为止,它只是通过按需印刷服务在纸上制作。我们希望能够为需要ePub格式的图书阅读器设备(例如Kindle)的用户提供这本书,以获得最佳效果。

幸运的是,ePub是一种非常简单的格式,但是LaTeX无需生成所需的XHTML输出。

我们尝试了替代的LaTeX编译器(例如plastex),但最后我们认为简单编写我们自己的编译器可能会容易得多,该编译器理解LaTeX语言的一小部分并直接编译为XHTML / ePub。

以前我在Windows上使用了一个名为GOLD的工具。这允许我直接从BNF语法转到存根解析器。我也很高兴用我喜欢的任何语言实现解析器。 (我选择Python)。

这个产品必须在Linux上运行,所以我想知道是否有一个在Ubutnu / Eclipse / Python下运行良好的等效工具链。我们的想法是,我们将采用TeX的语法并实现其中的一小部分,但我们不想花费大量时间来担心语法和解析。解析器生成器显然会为我们节省大量时间。

萨尔


更新1:具有出色文档或教程的解决方案的奖励标记。


更新2:如果TeX的语法文件已经可用,则额外奖励,因为我所要做的就是实现我们关心的功能。

3 个答案:

答案 0 :(得分:5)

尝试pyparsing

Se http://pyparsing.wikispaces.com/WhosUsingPyparsing,搜索TeX。有一个项目,其中pyparsing用于解析该页面上提到的TeX语法的子集。

对于文档,我推荐pyparsing的作者提供的"Getting started with pyparsing"电子书。

编辑:根据PaulMcG,pyparsing不再托管在wikispaces.com上。转到新的GitHub site

答案 1 :(得分:3)

尝试PLY

答案 2 :(得分:3)

我曾使用tex4ht将LaTeX转换为XHTML + MathML。工作得很好。从那时起,您可以使用输出HTML作为ePub的基础。

当然,这打破了Python工具链,所以它可能不会成为你最喜欢的方法......