上周, Michael Ramirez 发布了使用 Python 编写的 ActionScript 3 解析器—— asDox 1.0 Alpha 2 的版本。该解析器建立于针对Java 的 qDox 的基础上,它能够从源文件中提取比如类/接口、import 句柄、JavaDoc 标签和成员声明等一些特定信息。为了对该解析器进行更深入的了解,InfoQ 就此采访了 Ramirez。
Ramirez 这样回忆他最初使用 Python 开发 ActionScript 解析器的初衷:
我决定开发 asDox 是因为我觉得 ActionScript 3 需要一个类似于 qDox 的代码生成工具。而我选择 Python 作为开发语言,是由于 PyParsing 模块的存在。我发现 PyParsing 使用起来非常方便,并且在用它来开发 ActionScript 3 解析器的过程让我觉得挺有意思的。 最终的开发成品是我的目标,但真正要发布一个正规版本可能还是需要花上一些时间。asDox 可以通过生成代码来提高开发人员的工作效率。比如,假使你开发一组 ActionScript 3 类的话,使用 asDox 可以帮助你自动生成 PHP 后端代码。
在关于 asDox 和作为 Flex Builder 一部分的 Adobe 的 ASDoc 之间的关系这个问题上,Ramirez 说:
AsDoc 是通过解析内嵌在 ActionScript 3 源文件中的 JavaDoc 标签来生成 API 文档的工具。而 asDox 不仅能够解析 JavaDoc 标签,还能够解析包、类、变量和方法等等。它能够为开发人员提供了更多 ActionScript 3 源文件中的信息。如果将模板引擎与之结合使用的话,它将会是一个极为强大的代码生成工具。
另外,Ramirez 接着解释了他从 qDox 中的借鉴了什么以及在 asDox 的实现中所做的优化,他指出“asDox 的 Alpha 1 版本有一个和 qDox 的非常接近的 API,这使得 Python 开发人员很难使用 asDox。在Python 不是 Java(Python Is Not Java)发表之后,经过对之前的工作进行重构,最近的这个发布版本对 Python 则更为友好一些。”
asDox 的开发过程并非一帆风顺。正如 Ramirez 所述,“在开发 asDox 过程中最大的挑战是编写 ActionScript 3 解析器。ActionScript 3 是一种很难解析的语言,单就它的文法就很棘手。”
无论如何,Ramirez 计划还是继续他的工作。他说:“我计划为 asDox 开发一个 Adobe Air 桌面应用,但目前,我首先需要将精力集中在 asDox 1.0.0 的发布上。我非常希望能够不断地得到社区的反馈,从而将这个工具进一步优化。”
查看英文原文: New asDox Release Helps ActionScript 3 Code Generation
评论