【问题标题】:ANTLR parser for PL/SQL with target language as Java用于 PL/SQL 的 ANTLR 解析器,目标语言为 Java
【发布时间】:2011-11-11 03:57:45
【问题描述】:

我们有针对 Java 目标的 PL/SQL 语法器吗?我得到了 C# 的,但需要 Java 目标。

我想将它与 ANTLR 一起使用,以使用 StringTemplates 生成 Java。我已经浏览了文档并对如何实现这一点有一个很好的理解,只是想检查是否有人已经做过这种事情。

【问题讨论】:

    标签: java code-generation antlr stringtemplate


    【解决方案1】:

    嗯,在 ANTLR 网站上有一个语法:http://antlr.org/grammar/1279318813752/PLSQL.g

    作者说不解析SQL部分。

    我不知道您期望仅阅读语法就能生成什么。你通常需要 远不止于此。为什么不在这里查看我的答案:antlr generate ast for c and parse the ast

    编辑:OP 说他想将 PL/SQL 代码翻译成 Java。请参阅我关于构建语言到语言翻译器的答案:What kinds of patterns could I enforce on the code to make it easier to translate to another programming language?

    【讨论】:

    • 是的,我正在看 Patrick 的那个语法。我打算做的是,修改它以使用 StringTemplate 生成 java 源代码。关于如何去做的任何提示?
    • 您还没有说 PLSQL 的哪些部分很有趣,以及您想要生成什么样的 Java,所以除了相当悲观之外没有任何提示,因为 AST 通常是不够的。当你能清楚地解释你想要做什么时,我可能会建议你真正需要什么。
    • 我有一些 PLSQL 存储过程,我想将它们自动转换为 java/sqlj 类。使用 antlr 和 stringtemplates,我想从 plsql 过程生成 java/sqlj 源文件。
    • 如果你只有少量的代码需要转换,如果你手动完成,你会做得更快。代码翻译器需要时间来构建,并且只有在一次翻译大量内容或反复翻译时才有意义。做好真正的翻译需要您拥有的不仅仅是 AST;我假设您阅读了其他答案?
    • ALL:我尝试在聊天室进行智能对话。它有一些愚蠢的 5 或 10 行限制,并拒绝了我对 OP 的长响应。彻底浪费了我的时间,我不会在聊天室里花费更多的精力,而是会通过继续发布“扩展讨论”来惹恼 StackOverflow 机器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多