A ruleset (in RULESETS
) must be configured for metrics CODINGSTANDARD
,
COMPILERWARNING
, ABSTRACTINTERPRETATION
and SECURITY
. A ruleset must have
a unique name a corresponding metric and a unique rule directory. A metric may
be associated with more than one ruleset.
A ruleset NAME
must be (globally) unique. This is just a string identifying
the ruleset. Usually, something of the form owner language
metric; e.g., Acme C Coding Standard
, Acme C++
Compiler Warnings
.
A ruleset metric name must be one of CODINGSTANDARD
,
COMPILERWARNING
, ABSTRACTINTERPRETATION
,
SECURITY
.
RULESDIR
specifies the location of the coding standard configuration files
RULES.txt
and IMPL.txt
. Each ruleset must specify
its rule configuration in a separate directory. For more information on the
contents of RULES and IMPL: see RULES/IMPL.txt.
The property DYNAMICRULESET
defines whether a given ruleset is internally
an aggregate of multiple different rulesets. For each file separately a choice
is made on this ruleset dependent on the compiler version.
For enabling a dynamic ruleset, it is necessary to set the DYNAMICRULESET: 1
property in a ruleset. An example of the configuration in SERVER.yaml is given:
for further configuration and the contents of this rules.json file, see
the specific section for dynamic rulesets for
a more detailed explanation.
RULESETS: - NAME: C++ Dynamic Ruleset METRIC: CODINGSTANDARD RULESDIR: 4.0/codingstandards/CPP DYNAMICRULESET: 1
The properties DOCNAME
, DOCSUF
, SEP
and ANCHOR
may be set to
configure the coding standard viewer for the corresponding language. In
case the TICS coding standard viewer is used, setting DOCNAME
to the
coding standard viewer location for the language is sufficient. In case
DOCNAME
points to (static) HTML pages, SEP
and ANCHOR
may also
have to be set (to be able to point to individual rules).
The SEI CERT Secure Coding Rules are supported as follows.
RULESETS: - NAME: SEI CERT C++ Coding Standard METRIC: SECURITY ... DOCNAME: https://wiki.sei.cmu.edu/confluence/display/ DOCSUF: SYNOPSIS ANCHOR: /
So by setting DOCNAME
, DOCSUF
and ANCHOR
(to the values above).
DOCNAME
points to the TICS coding standard viewer or another document
located on a web server, e.g.,
http://outserver/codingstandard.html
.
ANCHOR
is the static part that redirects to the specific rule within a
coding standard document. For example, if the document contains anchors named
<a name="Rule100">
, where 100
is the ID of the
rule, then the ANCHOR
should be '#Rule'
. For TICS coding
standard viewers, this option can be omitted.
SEP
overrides unencoded HTML entities in the coding standard document. In
some cases, symbols that are not allowed in URLs, but that are part of the
name of a coding standard rule, such as '#
', are replaced by
another character in the coding standard document. For example, a rule
C#100
might be defined as anchor in the coding standard document
as follows: <a name="RuleC_100">
(i.e., the
'#
' has been replaced by '_
'). In this case, SEP
must be specified as '_
'. An alternative (better) approach would
be to use the URL-encoded character in the document; in this case: <a
name="RuleC%23100">
(since '%23
' is the URL-encoding of
'#
'), and avoid having to specify SEP
altogether. For TICS
coding standard viewers, this option can be omitted.