Antlr4 中的源到源翻译
Source to source translation in Antlr4
我正在尝试将PLSQL代码转换为JavaScript代码。我正在使用具有以下语法的Antlr4:https://github.com/developeron29/PLSQLParser。
我使用侦听器来翻译代码片段,如下所示:
@Override
public void enterBody(BodyContext ctx) {
functionBody += "function " + funcName + "{'n;
}
@Override
public void exitBody(BodyContext ctx) {
functionBody += "}'n;
}
...
它运行良好,但代码增长迅速,并且变得无法维护。
有没有更好/更干净的方法来进行这种翻译?
如果可以逐个翻译语言元素,则ANTLR-Listener方法很好。
或者,您可以考虑ANTLR-访客方法。如果您期望使用不同的解析树遍历策略或不同的中间结果进行多个编译器传递,我认为是合适的:
- 一个节点的代码不得在进入和退出之间拆分
- 您可以修剪解析树,甚至可以构造一个AST(AST构建器将是访问者)
- 您可以轻松地将节点的评估委托给其他解析树访问者
相关文章:
- 如何在javascript上使用flak-babel进行翻译
- 使用谷歌网站翻译器自动翻译网页
- jsi18n-django.catogue没有'不包含任何已翻译的字符串(但是djangojs.mo包含)
- Django'支持Javascript文件中的翻译
- 如何翻译MySQL查询's ResultSet转换为整数
- 原生脚本无限翻译动画
- AngularJS无法使用translate值正确翻译
- 如何将此JS翻译成Angular2
- Angular JS:翻译带有大量文本的静态html页面
- DOM更改后的L20N翻译html
- Javascript翻译模板
- 将JavaScript oop代码翻译为Lua
- i10n angularjs分配翻译变量
- 为什么可以't I翻译JS画布图像
- 如何翻译SVG及其所有子项
- 翻译是从哪里来的?Java servlet、tomcat和Ext Js Sencha应用程序
- 将 jQuery 代码翻译成普通的 JavaScript for Google Tag Manager
- 如何加载JSON数组以使用Angular-Translate翻译AngularJS网页
- Antlr4 中的源到源翻译
- 占位符上的角度翻译更新