Purpose
The FLMLRCIS parser supports MVS™ C and C++ source files. The parser
is written in REXX. The includes found by the parser are associated
with an include set that is the set name from the include statement.
For information about include sets, see FLMINCLS macro.
Functions
The parser uses the following
syntax rules to locate dependency names:
- The search for tokens is restricted to uncommented text.
The
character strings /* and */ are recognized as comment delimiters that
can span lines. The character string // is recognized as a begin comment
token where the comment ends at the end of the line.
- Include dependencies are generated when the first token on the
line is #include.
The dependency consists of the member or include
name and the include set name in the format 'member.set', where set
is the include set name. It can be surrounded by double quotes ("member.set")
or by angle brackets (<member.set>).
- Tokens inside strings are ignored.
The following table illustrates how
include and include-set names are derived from source statements.
Table 1. Examples
of include and nclude-set names derived from source statementsSource statement |
Include name |
Include-set name |
---|
#include "abc" |
abc |
|
#include "abc.h" |
abc |
h |
Another function of the parser is to gather statistics
or metrics for each module to be parsed. SCLM saves 10 statistics,
but only 4 are generated by this parser. This parser defines the ten
statistics as follows:
- Total lines
- The total number of records in the file.
- Comment lines
- This value is always 0.
- Noncomment lines
- This is the same as the total lines.
- Blank lines
- The number of lines that contain only blanks.
- Prolog lines
- This value is always 0.
- Total statements
- This value is always 0.
- Comment statements
- The total number of /* */ pairs in the member.
- Control statements
- This value is always 0.
- Assignment statements
- This value is always 0.
- Noncomment statements
- This value is always 0.
Parameters
The following guidelines apply
when specifying parameters:
- The order of the parameters is not important.
- See the language definition provided by SCLM for the actual use
of the parameters for FLMLRCIS.
The following keyword parameters,
separated by commas, are required as input to FLMLRCIS:
- LISTINFO
- Pointer to the SCLM list information record. This parameter is
required and must be set to @@FLMLIS.
- LISTSIZE
- The size of the LISTINFO buffer. This parameter is required and
must be set to @@FLMSIZ. The parser checks to make sure that the LISTSIZE
parameter is large enough to hold at least one entry of 228 bytes.
- STATINFO
- Pointer to the SCLM statistics information record. This parameter
is required and must be set to @@FLMSTP.
Return codes