Regex 如何设计代码验证工具?
对于一个大学项目,我必须创建一个工具来检查c代码的有效性。有效性意味着检查所有变量是否遵循驼峰大小写,或者检查类名是否以大写字母开头,等等。必须遵循的规则可以是多种多样的。我遇到的最大问题是从源代码中检索详细信息,如类名、方法名、它们的属性和行号。所以我想出了以下的解决办法Regex 如何设计代码验证工具?,regex,parsing,compiler-construction,antlr,cocor,Regex,Parsing,Compiler Construction,Antlr,Cocor,对于一个大学项目,我必须创建一个工具来检查c代码的有效性。有效性意味着检查所有变量是否遵循驼峰大小写,或者检查类名是否以大写字母开头,等等。必须遵循的规则可以是多种多样的。我遇到的最大问题是从源代码中检索详细信息,如类名、方法名、它们的属性和行号。所以我想出了以下的解决办法 使用语言解析器(如COCO/R或ANTLR) 使用正则表达式 根据C#grammar文件编码。。。如果还有别的什么 反射API-希望这不会起作用 做这件事最好的方法是什么。。或者有其他选择吗 谢谢。我个人会选择ANTLR,原
谢谢。我个人会选择ANTLR,原因如下:
当然,ANTLR需要一些学习,您可能需要花一两天的时间来使用它。如果您不了解ANTLR,并且没有太多时间,可以尝试使用一些正则表达式和C#/Java/等代码来破解任务 你能欺骗并使用反射吗?我不这么认为。不幸的是,我也想记下行号。希望使用反射是不可能的。@doctorlove如何检查使用反射的方法中的变量名?Nemerle中提供了一个完整且符合标准的C#解析器。