如果有人了解Vera ++或静态分析器,请仔细阅读。Vera ++ Rules Implementaion
任何人都可以请指导我一点如何实现复杂的C++规则验证机器作为静态分析器。我想实现复杂的规则,如基类中的虚函数,识别用户定义的变量,如类,结构等。变量范围如全局,本地,静态等。我理解Vera ++非常好,根据我的理解,它只执行令牌解析,语言的语境需要通过脚本实现(如果语言像C++一样,实现的上下文可能太复杂);因为区分a * b; (它可以是类类型a的指针b)或a * b;(可以简单地是两个变量之间的乘法);
我甚至觉得复杂规则的实现可能需要像状态机这样的编译器,以便脚本可以理解语言的上下文。
我的问题就是要问:
处于静态分析规则执行方面我的理解是否正确。
你能否引导我一点点我该如何着手这项任务的成就。
这些任务可以通过tcl的REGEXP简化。
是否有任何具体的设计方法可以建议良好实施Solid C++代码分析器。
感谢
也许这有助于:http://stackoverflow.com/questions/13139556/vera-tcl-rule-list-all-local-variables/13143067#13143067 –
您可以在令牌级别(Vera提供)收集有关C++的一些启发式信息,但是任何类型的严重语义分析都需要真正的解析和符号表构造。否则,你会如何知道像“X * Y”这样简单的事情?手段?请参阅http://stackoverflow.com/questions/243383/why-cant-c-be-parsed-with-a-lr1-parser/1004737#1004737 –