This document describes the XML entities and relations the COBOL scanner creates on encountering various COBOL code constructs.
XML document root element. Attributes:
id - Unique element identifier.
application - Contains the value of the DMS_CASCANNER_APPLICATION environment variable. This value is normally set before running the scanner to identify the application for the program that is being processed.
COMPILATION_UNIT
Represents the top level of analysis performed by the scanner. Attributes:
id - Unique element identifier.
name - The full file name of the main program file.
PROGRAM
Represents an instance of a PROGRAM-ID clause. Attributes:
id - Unique element identifier.
name - The name of the program from the PROGRAM-ID clause.
COPYBOOK
Represents an instance of a COPY statement in the compilation unit. Attributes:
id - Unique element identifier.
name - The full file name of the copy book.
ENTRY
Represents an instance of an ENTRY statement in the compilation unit. Attributes:
id - Unique element identifier.
name - The name of the entry from the ENTRY statement.
FILE
Represent an SELECT statement in the compilation unit. Attributes:
id - Unique element identifier.
name - The name assigned by the SELECT statement to a FD (File Descriptor)
Attributes:
NAME - The name of the program from the PROGRAM-ID clause.
TOTALFILES - The total number of files in this compilation unit (source file plus all included copy libraries.
TOTALCODELINES - The total lines of code without comments and blank lines for all files in the compilation unit.
TOTALCOMMENTLINES - Total number of comment lines without blank lines.
TOTALLINES - The total number of lines in all files for the compilation unit.
CONDITIONALS - The total number of conditional statements.
CYCLOMATICCOMPLEX - A measure of the complexity of the program's control flow graph.
DECISIONDENSITY - The cyclomatic complexity divided by the total number of lines in the program.
H_OPERATOROCC - The number of operator occurences in the compilation unit. H_OPERANDOCC - The number of operand occurences in the compilation unit. H_UNOPERATORS - The number of distinct operators in the compilation unit. H_UNOPERANDS - The number of distinct operands in the compilation unit.
MAXCNDP - Maximum conditional nesting depth of the compilation unit.
MAXLPDP - Maximum loop nesting depth of the compilation unit.
H_PGMLENGTH - Halstead Program Length: N = H_OPERATOROCC+H_OPERANDOCC H_PGMVOCABULARY - Halstead Program Vocabulary: n = H_UNOPERATORS+H_UNOPERANDS
H_PGMVOLUME - Halstead Program Volume: V = N x log2(n)
H_PGMDIFFICULTY - Halstead Program Difficulty: D = (H_UNOPERATORS/2) x (H_OPERATORCC/H_UNOPERATORS)
H_PGMEFFORT - Halstead Program Effort: E = D x V;
H_BUGPREDICTION - Halstead Bug Prediction: B = (H_OPERATOROCC+H_OPERANDOCC) x log2(H_UNOPERATORS+H_UNOPERANDS) / 3000.
SEIMAINTAINABILITY - SEI Maintainablity index
MEANCYCLOMATICCOMP - Mean cyclomatic complexity of the paragraphs in the compilation unit.
MEDIANCYCLOMATICCO - Median cyclomatic complexity of the paragraphs in the compilation unit.
Represents a top level 01 or 77 level element in a defined in the compilation unit. The record may or may not have GROUPS or ELEMENTS.
Attributes:
id - Unique element identifier.
name - The name of the file descriptor from the FD statement.
mentioned - The count of the number of times the record name was used in the compilation unit.
Represents a subelement of a RECORD definition that has subelements.
Attributes:
id - Unique element identifier.
name – The name of the file descriptor from the FD statement.
mentioned - The count of the number of times the group name was used in the compilation unit.
Represents a subelement of a RECORD or GROUP. An element does not have subelements and will always have a PICTURE.
Attributes:
id - Unique element identifier.
name - The name of the file descriptor from the FD statement.
length - The number of bytes of memory that the ELEMENT requires for storage. mentioned - The count of the number of times the element name was used in the compilation unit.
data type - A DB2 compatible data type for the ELEMENT.
CHAR - Character data of COBOL type DISPLAY or DISPLAY-1
SMALLINT - A binary number that requires two or fewer bytes. Corresponds to small COBOL values of type INDEX, POINTER, BINARY, COMP, COMP-4, and COMP-5.
INTEGER - A binary number that requires more than two bytes. Corresponds to small COBOL values of type INDEX, POINTER, BINARY, COMP, COMP-4, and COMP-5.
NUMERIC - COBOL values of type COMP-1 or COMP-2.
DECIMAL - COBOL values of type PACKED-DECIMAL or COMP-3.
Represents a level 88 item (CONDITION NAMES) in the compilation unit.
Attributes:
id - Unique element identifier.
name - The name of the file descriptor from the FD statement.
value - A representation of the VALUE clause of the element.
Indicates the RECORD elements that were defined in a copy library.
Attributes:
id - Unique element identifier.
source - The id of the COPYBOOK element.
target - The id of the RECORD element.
Represents a data item (RECORD, GROUP, ELEMENT) that was mentioned in the compilation unit.
Attributes:
id - Unique element identifier.
source - The id of the PROGRAM element.
target - The id of the RECORD/GROUP/ELEMENT element.
Associates an ASSIGNED NAME to a FD (File Descriptor)
Attributes:
id - Unique element identifier.
name - The name of the FD assigned to by the target FILE element
use - Indicates the file's usage: R (READ) or O (WRITE, UPDATE, SORT).
source - The id of the PROGRAM element.
target - The id of the corresponding FILE element.
Associates a PRG_FILE (FD/SELECT) to a RECORD.
Attributes:
id - Unique element identifier.
source - The id of the RECORD element.
target - The id of the corresponding PRG_FILE element.
Represents a call between two PROGRAM elements.
Attributes:
id - Unique element identifier.
source - The id of the calling PROGRAM element.
target - The id of PROGRAM element being called.
Represents the arguments of a called subprogram.
Attributes:
id - Unique element identifier.
source - The id of the called PROGRAM element.
target - The id of RECORD/GROUP/ELEMENT element argument to the call