我知道有几个关于ActionScript解析器的类似问题,我认为最合适的答案是FlexPMD(http://sourceforge.net/adobe/flexpmd/home/Home/)。遗憾的是,这个答案并不适合我,因为我需要用ActionScript编写的解析器,它允许我操作源代码(例如,包装源代码的所有函数)。
为了实现我的目标,我还阅读了关于AS3的元编程,但它似乎仅限于我的目的。
答案 0 :(得分:0)
我还没有尝试过,但我偶然发现了这一点,看起来很像你正在寻找的东西:
https://code.google.com/p/as3-commons/source/browse/trunk/as3-commons-asblocks/
答案 1 :(得分:0)
我已经完成vegascriptparser的解析,它解析了近方言(VegaScript)。其他部分,vegascriptparser-bytecode和vegascriptparser-semantic,可能会在参考后完成。
也是自述文件上的有趣示例:
import vegascriptparser.*
import vegascriptparser.ast.*
const source = <![CDATA[
trace(<{test ? 'x' : 'v'}/>)
x?.v()
]]>.toString()
const program = Parser.quick(source).parse()
变成:
Program {
directives: [
↪ ExpressionStatement { CallExpression {
base: Identifier,
args: [ ConditionalExpression, ],
}}
↪ ExpressionStatement { OptionalExpression {
base: Identifier,
sub: CallExpression,
}]}