首页 > 解决方案 > 使用 ANTLR 遍历 C# 项目

问题描述

我有一些 ANTLR/C# 类能够解析 T-SQL 存储过程、遍历其依赖项并识别执行所述存储过程所需的权限。

我现在需要分析几个相对较大的 C# .NET 项目来确定调用了哪些存储过程。

仅仅定位所有存储过程调用是不够的,我需要从给定的方法中工作并从中识别存储过程调用。

我们可以假设存储过程是调用 SQL 的唯一方法。

我想 ANTLR 会再次提供帮助,但我不确定一些事情

  1. ANTLR 是遍历方法调用链的唯一方法吗?
  2. 如果我使用 ANTLR,我在哪里可以找到“最好的”C# .g4 语法文件?
  3. 我如何从一个单元中的方法调用走到另一个单元中的声明 - 这是我目前最不确定的一点

为了简化问题,让我们假设所有存储过程调用都采用以下形式

            new SqlCommand()
            {
                Connection = GetConnection(),
                CommandText = "dbo.SomeProcName",
                CommandType = CommandType.StoredProcedure
            };

就我的目的而言,这几乎是真的。

我主要关心的是 3. 以上

标签: c#antlrantlr4antlr4cs

解决方案


推荐阅读