Last week Michael Ramirez released asDox 1.0 Alpha 2, an ActionScript 3 parser written in Python. It is based on qDox for Java. The parser skims the source files only looking for things of interest, such as class/interface definitions, import statements, JavaDoc tags and member declarations. InfoQ spoke with Ramirez to gain additional insight.
Ramirez explained the motivation for developing an ActionScript parser in Python, recalling:
I decided to develop asDox, because I felt ActionScript 3 needed a code generation tool similar to qDox. I choose Python, because of the PyParsing module. I found PyParsing very easy to use, and it made developing an ActionScript 3 parser fun.
An end product is the goal, but it will probably be a while before I can release one. The asDox is a tool to increase your productivity as a developer via code generation. For example, you might develop a collection of ActionScript 3 classes and use asDox to automatically generate the PHP back-end code.
On the relationship between asDox and Adobe’s ASDoc , which is now part of Flex Builder, Ramirez says:
AsDoc is a tool used to generate API documentation by parsing JavaDoc tags embedded in ActionScript 3 source files. asDox is a tool that parses not only JavaDoc tags, but also packages, classes, variables and methods. It provides the developer with more information about his or her ActionScript 3 source files. When combined with a template engine, it can be a very powerful tool in code generation.
Ramirez went on to explain how much he adapted from qDox and the improvement he made in asDox implementation, pointing out, “The Alpha 1 release of asDox had an API that very closely matched that of qDox. This made asDox harder to use for Python developers. After the publication of Python Is Not Java, the last release has been completely reworked to be more Python friendly.”
The development of asDox was not painless. As Ramirez notes, “The biggest challenge in developing asDox was writing the ActionScript 3 parser. ActionScript 3 is a very difficult language to parse, because it's not very forgiving in terms of syntax.
Nevertheless, Ramirez plans to forge ahead with his work. He says, “I plan to develop an Adobe Air desktop application for asDox. But, right now my primary focus is on getting asDox to a 1.0.0 release. I am really counting on feedback from the community to make this tool better.”