User's Manual
Table 2 Source structure in the rules library
include/
• HPCodeGuideConstructs.h
Contains the APIs required for (re)writing the rules to enforce coding guidelines.
• HPCodeGuideDiagnosticTags.h
Contains the various diagnostic tags that you can use to emit the diagnostics
from the rules library.
lib/
• libcodeguide.a
This is provided to fill in the implementation stubs for recompilation of the rules'
library, and must be linked in while compiling the rules' library.
• librules.s[lo]
This is the default rules' library that is available with cadvise.
src/
• HPCodeGuideRules.C
The file where all rules are implemented. You can modify this file to incorporate
more rules and/or modify the existing ones.
• HPCodeGuideRulesDriver.C
The driver from where the rules are invoked on the various program constructs.
• Makefile
The default makefile for rebuilding the rules' library from the above sources.
The sample rules towards naming convention that are available with the current release are as
follows:
1. Functions that returns a bool must start with is.
2. Names of abstract classes should begin with Interface.
3. Class names should start with a capital letter.
4. Names of global variables should start with a capital letter.
5. Names of local variables should start with a small letter.
An example of writing a rule to enforce the naming convention of private data members being
suffixed with an '_' is as follows:
Example 5 Writing a rule to enforce naming convention
void Field::checkNamingConventions() {
//Private data members of class should end with "_"
if(name() && isPrivate()) {
char ch = *name() + strlen(name());
if(ch != '_')
warning("Private data member \"%s\" not suffixed with \"_\"", 2000053, name());
}
}
NOTE: Cadvise reports do not currently have support for Coding Guideline diagnostics. Use the
-tee option to view these messages.
18 Using Cadvise