我正在用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