0

对于大学项目,我必须创建一个检查 c# 代码有效性的工具。有效性意味着检查所有变量是否遵循驼峰式或检查类名是否以大写字母开头等等。必须遵循的规则可以有所不同。我遇到的最大问题是从源代码中检索类名、方法名、它们的属性和行号等详细信息。所以我想出了以下解决方案,

  1. 使用语言解析器(如 COCO/R 或 ANTLR)
  2. 使用正则表达式
  3. 通过根据 C# grammer 文件进行编码... Just if else 等等...
  4. 反射 API - 希望这不会工作

什么是最好的方法来做到这一点..或者有没有其他选择?

谢谢你..

4

1 回答 1

2

我个人会选择 ANTLR,原因如下:

  1. 它比正则表达式更简单,更强大
  2. 使用 ANTLR 根据您的规则更容易实现复杂的逻辑
  3. 结果代码将更容易更改
  4. 您可以跟踪当前行号
  5. 由于您不需要编译 C# 代码,因此您不需要在 ANTL 中实现整个语法。您可以假设代码是有效的并跳过其中的某些部分,例如变量初始化、条件、LINQ 等,只留下您真正需要验证的语法部分。

当然 ANTLR 需要一些学习,你可能需要花一两天时间来玩它。如果您不了解 ANTLR 并且没有太多时间,您可以尝试使用一些正则表达式和 C#/Java/等来破解任务。代码。

于 2013-10-23T15:10:41.217 回答