Parsing 用ActionScript编写的ActionScript解析器?

Parsing 用ActionScript编写的ActionScript解析器?,parsing,actionscript,Parsing,Actionscript,我知道关于ActionScript解析器有几个类似的问题,我认为最合适的答案是FlexPMD()。遗憾的是,这个答案并不完全适用于我,因为我需要用ActionScript编写解析器,它允许我操作源代码(例如,包装源代码的所有函数) 为了实现我的目标,我还阅读了有关AS3元编程的内容,但我的目的似乎有限。我还没有尝试过,但我遇到了这个问题,这可能就是您想要的: 我已经完成了,它解析了一种近似方言()。其他部分,vegascriptparser字节码和vegascriptparser语义,可能会在参

我知道关于ActionScript解析器有几个类似的问题,我认为最合适的答案是FlexPMD()。遗憾的是,这个答案并不完全适用于我,因为我需要用ActionScript编写解析器,它允许我操作源代码(例如,包装源代码的所有函数)


为了实现我的目标,我还阅读了有关AS3元编程的内容,但我的目的似乎有限。

我还没有尝试过,但我遇到了这个问题,这可能就是您想要的:

我已经完成了,它解析了一种近似方言()。其他部分,vegascriptparser字节码和vegascriptparser语义,可能会在参考后完成

还有自述文件上有趣的示例:

import vegascriptparser.*
import vegascriptparser.ast.*

const source = <![CDATA[
    trace(<{test ? 'x' : 'v'}/>)
    x?.v()
]]>.toString()

const program = Parser.quick(source).parse()

你的问题是什么?你在找AS解析器吗?@MattBall:他的问题很清楚。我不知道他为什么会被解雇;我相信这提高了他的认知,使之成为有用的信息来源。也就是说,如果他找到了他想要的东西,我会非常惊讶。我找到了evales4(),这对我的目的可能很有用。EvalES4是用AS3编写的,是一个用于AS3的交互式Web flash IDE。为了工作,EvalES4使用解析器。我希望Adobe能够证明AS3的“官方”解析器,但我认为我错了。我确信Adobe拥有AS3的“官方”引用解析器。这是不同的,你可以让他们给你,或其他人有它。他们也没有我能看到的商业动机,去祝福别人的父母;当人们发现它与Adobe的不完全匹配时,这只会给他们带来麻烦。你最好希望有第三方(例如hurlant.com)构建这样的解析器。现在你必须问,他们为什么要你拥有它?最后的希望:ANTLR/Bison风格的开源语法;你拒绝了。像往常一样,真正的问题是,您想做什么?谢谢您的帮助,我尝试检测源代码,以便获得程序执行的每个事件(例如调用函数)的通知。
Program {
    directives: [
    ↪  ExpressionStatement { CallExpression {
            base: Identifier,
            args: [ ConditionalExpression, ],
        }}
    ↪  ExpressionStatement { OptionalExpression {
            base: Identifier,
            sub: CallExpression, 
        }]}