如何将JavaScript代码转换为ast的xml表示形式



我正在用ANTLR构建JavaScript抽象语法树的XML序列化器。生成器是相当完整的,但我想知道是否有任何约定的一些问题,如:

  • 如何处理尖括号在字符串或正则表达式?
  • 如何翻译if-then-else(例如,else节点是否在if节点内)?

更一般地说:这样的翻译器是否已经存在?这种基于xml的语言有任何现有的XSD吗?

编辑

我目前只对免费工具感兴趣。

从XML执行代码生成和从代码生成XML的解析器随时可用:

  • 自定义PMD规则- O'Reilly Media

  • estools/esvalid:确认SpiderMonkey格式AST代表ECMAScript程序

  • jantimon/handlebars-to-ecmascript:将handlebars转换为ecmascript AST

  • estools/estemplate:正确的(基于ast的)JavaScript代码模板,支持源映射。

  • estools/esrecurse: AST递归访客

  • estools/estraverse: ECMAScript JS AST遍历函数

  • estools/escape: escope: ECMAScript作用域分析器

  • esttools/esquery: ECMAScript AST查询库。

你问,"这样的译者存在吗?"如果问题是"这在ANTLR中存在吗?"那么我想你会在ANTLR.org网站上找到答案。我的公司就有这样一个翻译,所有的问题都解决了;如果你想看到一个输出示例作为答案,我将为你制作一个专门针对JavaScript的输出示例。

这里有一个指向Java XML输出的链接:面向对象编程语言的AST(抽象语法树)是什么样子的?

引用

  • 解析器,Part IV: Java交叉引用工具(pdf)

  • 0:XML开发工具链

  • 命令行渲染| Highcharts

  • 解析器API - Mozilla | MDN

最新更新