我试图在我的 C# 应用程序中解析和执行一个相当简单的 Oracle SQL 查询。为此,我决定使用 ANTLR 作为解析器工具,因为 Oracle SQL 语言的语法已经可以从语法列表页面下载。
我还选择了最新版本的 ANTLR 3.4 并使用以下命令生成 C# 源文件以在我的应用程序中使用
java -cp antlr-3.4-complete.jar org.antlr.Tool OracleSQL.g
小备注:原来的语法文件有 C 作为输出语言,所以我把它改成了CSharp2
(我也试过CSharp3
,但没有运气)。
代码的问题是我得到了像这样的代码块
if ((((( !(strcasecmp((const char*)LT(1)->getText(LT(1))->chars, "SUBPARTITION")) )&&
因此解决方案无法编译。
我也尝试过这里发布的解决方案,但无济于事。
我错过了什么?
谢谢,阿德里安。