用ActionScript编写的ActionScript Parser?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用ActionScript编写的ActionScript Parser?相关的知识,希望对你有一定的参考价值。

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

为了实现我的目标,我还阅读了关于AS3的元编程,但它似乎仅限于我的目的。

答案

我没试过,但是我遇到了这个,看起来很像你在找什么:

https://code.google.com/p/as3-commons/source/browse/trunk/as3-commons-asblocks/

另一答案

我做了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, 
        }]}

以上是关于用ActionScript编写的ActionScript Parser?的主要内容,如果未能解决你的问题,请参考以下文章

在没有网桥的情况下在JavaScript和ActionScript库之间共享代码

用JavaScript编写自定义事件调度程序?

用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 在脚本中使用MonoBehaviour

DataGrid 中的 ActionScript 项呈现器

分析 ActionScript-3 代码

ActionScript 3 编写JavaScript注入的基本框架