0

我想用 ANTLR 构建一个 Javascript 源代码处理工具。由于 Mozilla 的 Javascript 引擎 Spidermonkey 已经能够解析 Javascript 并输出一个 AST(它本身就是一个 Javascript 对象树),我所需要的只是利用 ANTLR 的树语法特性来解析那个 AST。我不必创建自己的 Javascript 源解析器语法。

但是,问题是,我们如何将外部 AST 导入 ANTLR 的树语法可以识别的形式?根据The Definitive ANTLR Reference,我很可能需要创建自己的TreeAdaptor。但是我应该重写哪些方法?Spidermonkey 的 AST 是一个异构树,其中不同的节点类型用于不同的语句。我需要手动将此异构树映射到 ANTLR 能够处理的树形式,其中单个CommonTree类型用于所有节点。

我的 ANTLR 目标语言可以是 Javascript 或任何东西(因为 Spidermonkey 生成的 AST 是 Javascript 对象树)。

4

0 回答 0