java - Antlr 可以将嵌入式语法路由到单独的文件进行处理吗?

标签 java compiler-errors antlr4

我们正在处理一些相当大的 java 文件。嵌入在 java 中的是各种非 java 语句/文件(SQL 是最普遍的)。我可以扩展语法,但出于我们的目的,在另一个 channel 上发送错误语句、收集这些语句并进行解析会更有效率。或者找到一些方法来隔离它们。我们目前对评论执行此操作,因为评论包含必要的附加信息。
关于如何优雅地处理嵌入式岛语法的任何建议?
这是一个我们需要解析数据库调用以及语言的示例

public static void viewTable(Connection con) throws SQLException {

    String query = "select COF_NAME, SUP_ID, PRICE, " +
                   "SALES, TOTAL " +
                   "from COFFEES";

    try (Statement stmt = con.createStatement()) {

        ResultSet rs = stmt.executeQuery(query);

        while (rs.next()) {
            String coffeeName = rs.getString("COF_NAME");
            int supplierID = rs.getInt("SUP_ID");
            float price = rs.getFloat("PRICE");
            int sales = rs.getInt("SALES");
            int total = rs.getInt("TOTAL");
            System.out.println(coffeeName + ", " + supplierID +
                               ", " + price + ", " + sales +
                               ", " + total);
        }
    } catch (SQLException e) {
        JDBCTutorialUtilities.printSQLException(e);
    }
}
代码处理正确(它是有效的 Java),但我们需要提取 SQL 语句并通过后期处理运行它们。

最佳答案

有一种方法可以做到这一点,只是不是我想要的方式。 Kaby76 很到位,我们最终解析字符串以查找我们已经实现的某些动词,将后处理字符串加载到文件中,然后针对这些文件运行 antlr。它不是“优雅的”,但它确实有效(这是我所能要求的)

关于java - Antlr 可以将嵌入式语法路由到单独的文件进行处理吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62535463/

相关文章:

Java 函数中相对于 header 方法的不同返回类型

parsing - Antlr4如何构建允许关键字作为标识符的语法

Java 类型转换顺序

Java 数组中元素的固定个数

java - 如何使用 javascript 从嵌套标签中提取内容?

C Char 按参数

java - Eclipse 保持使用 bin/META-INF/persistence.xml

c# - 解析 XAML : "Integer types not allowed" errors for many attributes such as width 时出错

c++ - GCC编译器在查找头文件时不搜索子目录

AnTLR4 奇怪的优先行为