词法分析器/解析器可以用作转码器吗?

时间:2011-10-19 06:54:24

标签: parsing plsql antlr transcode

我正在考虑将plsql程序/包转换为java类。我刚刚遇到了“ANTLR PL / SQL 11g解析器”(link)。仍然试图了解它的作用以及如何使用它。假设我在plsql构造和java构造之间有映射,是否可以使用这个plsql解析器生成java代码?

3 个答案:

答案 0 :(得分:2)

另一张海报上写着“解析器还不够”。

我同意,但是想要证明解析器距离实现这一过程还有很长的路要走(即使假设它构建了一个完整的AST)。

您还需要至少使用名称和类型解析,以便了解Java遇到PLSQL运算符时要使用的类型和运算符。为了做好,您可能需要各种流量分析(控制和数据流)。

有关困难的一些讨论,请参阅What kinds of patterns could I enforce on the code to make it easier to translate to another programming language?

答案 1 :(得分:1)

是的,但仅仅在语法上抛出问题是不够的。您需要弄清楚如何将PL / SQL语义映射到Java。使用链接解析器可能会有所帮助,因此在同一项目中提供了抽象语法树walker。生成Java代码应该不难,但也不是一件小事。

答案 2 :(得分:0)

我会使用Xtext和Xtend。真的很神奇。请在vimeo上观看他们的视频。