Configuring RainCode

It is possible to incorporate RainCode results in the TICS output for COBOL files. RainCode detects, counts, and measures non-trivial things in your code, and can take any corrective or preventive action in it. The tool is manufactured by RainCode.

Which RainCode version should be used

The integration of RainCode within TICS is based on RainCode version 1.108.1.253. It is not recommended to use another version than this version.

Prerequisites

For a successful RainCode integration, the following prerequisites must be met:

Basic configuration

Since RainCode expands all used copybooks in a program, it needs to be instructed where to find these copybooks. This information is extracted by TICS from the project's build (e.g. the build options -Ic:\project\copy and -Ic:\project\dclgen instruct RainCode to look for copybooks in these two directories). For this, the correct BUILDTYPE should be specified. Since no compilation has to be performed, the compiler None should be configured for the buildtype.

  'COBOL' => {
    ...
    'BUILDTYPE' => [
      { 'name' => 'Make', 'compiler' => [ 'None' ] },
    ],
    ...
  },

Configuring which rules of RainCode should be checked

RainCode has the possibility to detect problems of many different classes. All these classes are listed within the RainCode installation in the following file: RainCode/rules.pdf. The user is free to choose any set of classes that should be reported by TICS. As with other codecheckers, this is done by editing the RULES.txt and the IMPL.txt files within the cfg directory on the TICS FileServer. The user is free to choose the rule's identifier, severity level, category and synopsis in the RULES.txt. How TICS invokes RainCode is configured in the IMPL.txt. In this file, the "Identifier" of the class should be used. These "Identifiers" are the section names of a rule in the rules.pdf document. Note: all spaces in the "Identifier" should be replaced by "_"'s. A short example of the IMPL.txt file is given below:

LIT#001	RainCode	LIT-001
NN#1.1	RainCode	Rule_1.1
NN#2.7	RainCode	Rule_2.7
LEX#001	RainCode	LEX-001
LEX#003	RainCode	LEX-003

A standard RainCode rule configuration is available in the form of a IMPL.txt, RULES.txt pair.