提问人:Alena 提问时间:7/18/2023 更新时间:7/18/2023 访问量:42
Antlr PLSQL,如何获取表达式的位置
Antlr PLSQL, How to get positions of expressions
问:
我想使用 antlr PLSQL 解析器来操作来自 Oracle Forms 的 sql 代码。
因此,我创建了所有需要的 Java 类,现在有了这个工作正常的 Main 代码:
CharStream charStream = CharStreams.fromString("CREATE FUNCTION totalCustomers \r\n"
+ "RETURN number IS \r\n"
+ " total number(2) := 0; \r\n"
+ "BEGIN \r\n"
+ " SELECT count(*) into total \r\n"
+ " FROM customers; \r\n"
+ " RETURN total; \r\n"
+ "END; ");
PlSqlLexer plSqlLexer = new PlSqlLexer(charStream2);
CommonTokenStream commonTokenStream = new CommonTokenStream(plSqlLexer);
PlSqlParser plSqlParser = new PlSqlParser(commonTokenStream);
PlSqlParser.Create_function_bodyContext sql_scriptContext = plSqlParser.create_function_body();
我可以获取语法错误的数量和解析树的子节点。 但是我想知道如何获得某些表达式的特定位置(字符位置)。
我在互联网上找不到任何关于这方面的信息,但我知道 antlr 能够做到这一点。
有人知道吗?
我查看了 PLSQLParser 提供的所有方法,但似乎没有一个对我有帮助。
答: 暂无答案
评论
start
stop
commonTokenStream