PreviousShareable Projects LanguagesNext

Chapter 18: Language Extension Support

This chapter gives details of the support provided in the Assembler, PL/I and Unisys language extensions.

18.1 Assembler Extension

The Assembler Extension provides a language parser for applications written in IBM System/370 Assembler.

The Assembler Extension includes macro support. Macros must be saved as .MAC files in separate directories. The file name must be identical to the Macro name. Revolve allows 127 macros per Assembler program. Prior to parsing, macros are expanded and the complete, expanded source code can be viewed in the Source view. Macros themselves are displayed in the Copybooks and Includes information browser.

18.2 PL/I Extension

The PL/I Extension provides a language parser for applications written in PL/I.

The following keywords can be listed as BUILTIN and will be recognized as functions for PL/I Impact Analysis:

ADD COSH LINENO PRECISION TRUNC
ABS COUNT LOG PROD UNSPEC
ACOS COUNTER LOG10 REAL VERIFY
ADDR CURSTORE LOG2 REPEAT  
ALL DATAFIELD LOW ROUND  
ALLOCATION DATE MAX SAMEKEY  
ANY DECIMAL MIN SIGN  
ASIN DIMENSION MOD SIN  
ATAN DIVIDE MULTIPLY SIND  
ATAND EMPTY NULL SINH  
ATANH ENQUOTE ONCHAR SQRT  
BINARY ERF ONCODE STATUS  
BOOL ERFC ONCOUNT STORAGE  
CEIL EXP ONFILE STRING  
CHAR FLOOR ONKEY SUBSTR  
COMPILETIME HBOUND ONLOC SUM  
COMPLETION HIGH ONSOURCE TAN  
COMPLEX IMAGINARY PARMSET TAND  
CONJUGATE INDEX PLIRETV TANH  
COS LBOUND POINTER TIME  
COSD LENGTH POLY TRANSLATE  

18.3 Unisys Extension

The Unisys Extension provides a language parser for applications written in Unisys.

18.3.1 Unisys Support

The following table defines the scope of Unisys support:

Unisys 1100/2200 Series Support

COBOL

ACOB (or ASCII COBOL) - This is the Sperry Univac series 1100 American National Standard COBOL (ASCII) Level 7R1A [ANSI74]

UCOB (Also known as NPE COBOL); this is an implementation of ANSI85 COBOL. It also supports most of the Unisys extensions supported by ACOB.

DMS (Database Access)

Sperry Univac 1100 Series DMS 1100 COBOL (ASCII) DML13R4

1000 Series RDMS

Embedded SQL will be supported to the current MVS DB2 level.

ECL (Job Control)

Unisys OS1100 Exec System Software Executive Control Language (ECL) SB4R1

Unisys A Series

COBOL

COBOL ANSI-74 Release 3.9.0

18.3.2 Unisys Library Files

Within the Unisys COBOL context, the COPY statement is used to copy a segment out of a Library (.ULB) file which can contain one or more named segments of COBOL. Revolve enables access to specific named segments within the Library file (.ULB). When accessed by the COPY statement the library files have the following form:

MYLIB.ULB
NAMEOFSEG PROC
VALID COBOL CODE.........
END

The previous section of code will be "pulled into" the COBOL program which has the COPY NAMEOFSEG line.

18.3.3 Unisys INVOKES

Revolve interprets DMS INVOKE statements in a way that "pulls in" segments of Library files (.ULB) with matching SCHEMA and SUBSCHEMA . For example, the Invoke statement...

INVOKE SUBSCHEMA IDHABCD-R
IN FILE IDH OF SCHEMA IDH-R

...will "pull in" all segments from the Library file as illustrated below:

The following is source for ABCIDH.CBL
INVOKE SUBSCHEMA IDHABCD-R
IN FILE IDH OF SCHEMA IDH-R
...
WORKING STORAGE or COMMON STORAGE
COBOL code from segment 1 of IDH-R$IDHABCD-R$R$0001 PROC
COBOL code from segment 2 of IDH-R$IDHABCD-R$R$0002 PROC
Continuance of source for ABCIDH.CBL

The Library file had two segments that matched the SUBSCHEMA of the INVOKE statement, so both were inserted into the appropriate location.

18.3.4 Unisys File Access

File access for the Unisys extension is limited to local and networked PC drives. Mainframe connectivity is not supported.

18.3.5 DMS Information Browser

The DMS Information Browser, accessible from the Browsers menu, supports:

SUBSCHEMA sections:

Supports the INVOKE statement.

Copybooks:

Shows libraries and DMCA.CPY.

DMS statements:

Supported as described below.

18.3.6 DMS General Data Structure Principles

On a Unisys mainframe when processing ACOB(ANSI 74) Cobol code there is a process whereby the Cobol program is brought together with a Unisys specific copybook format with a name starting S$ and put through a preprocessor to produce a standard Cobol program with DMS functionality embedded that is input to the compiler. This same principle applies for UCOB(ANSI 85).

The preprocessor on the mainframe is called the ASCII Data Manipulation Program(ADMLP).

Revolve will try to emulate some of the ADMLP functions in order to build a Cobol program that it can understand and analyze successfully.

The following assumptions apply to the Revolve functionality:

Example:

DJGINQSCH-R$DJGASCALL-R$R$0001 PROC

18.3.6.1 DMCA (Data Management Control Area)

This is a data are that is generated by the preprocessor based on the DDL used to define the Schema/Subschema. It is used to store response code information, status of functions, databases etc and for general communications between the program and the DMS system at execution time.

Data areas within the DMCA are used within the Procedure Division of the Cobol program , consequently Revolve will need access to it in order to be able to resolve data items and do analysis.

You need to supply a DMCA.CPY copybook. It is suggested that this is created by 'cutting' the code from a preprocessed main frame program. An example is supplied with the Unisys sample code.

18.3.7 DMS Procedure Commands

Procedure Division Commands

DMS Procedure Division commands can be separated into the following types:

AREA oriented commands
RUN UNIT oriented commands
RECORD oriented commands
SET oriented commands
SUPPORTING commands
CONDITIONAL commands

The Unisys Extension supports RECORD oriented verbs. All others types of this command will be successfully parsed and highlighted as DMS commands. However, association with the appropriated data areas and scripts will not be supported.

AREA and RUN UNIT Oriented Commands

Impart
Depart
Free
Open
Close

SET Oriented Commands

ACQUIRE
INSERT
REMOVE

CONDITIONAL Commands

IF

Distinction of the DMS IF from the Cobol IF will be on the basis of the following:

IF identifier-1 SET: The word SET in this position will indicate a DMS conditional
IF RECORD: The word RECORD in this position will indicate a DMS conditional.

SUPPORTING Commands

MOVE

Distinction of the DMS MOVE from the Cobol MOVE will be on the basis of the following:

MOVE CURRENCY: The word CURRENCY represents a DMS MOVE
MOVE AREA-NAME: The word AREA-NAME represents a DMS MOVE
MOVE AREA-KEY: The word AREA-KEY represents a DMS MOVE

LOG

LOG will always be treated as a DMS command.

RECORD Oriented Commands

All RECORD oriented commands can have the following formats:

Command record-name-1
Command identifier-1

When the command uses the identifier-1 format, Revolve will make a 'best effort' to resolve these data items in use within the specific commands as much as possible, depending upon logic complexity.

FIND

FIND is a positioning command. It points the user to a particular point in the data. Revolve makes the association between the command and the data area that it is operating in within the appropriate data storage section. Other valid formats of the FIND command are:

FIND OWNER RECORD WITHIN set-name SET
FIND CURRENT RECORD WITHIN set identifier SET
FIND NEXT RECORD WITHIN area-name AREA
FIND PRIOR RECORD WITHIN area identifier AREA
FIND FIRST RECORD WITHIN ……………
FIND LAST RECORD WITHIN ……………
FIND identifier RECORD WITHIN ……..……

Note: Revolve does not attempt to resolve the above format of the FIND command to a data area. All other occurrences are shown as DMS commands in the DMS Browser. Any association with record layouts is dependent on currency at these points and not resolvable in the Revolve static environment. All of the SET and AREA options are valid and identify all of the OWNER, CURRENT, etc. options.


FIND NEXT record-name WITHIN set-name SET
FIND PRIOR identifier WITHIN set identifier SET
FIND FIRST record-name WITHIN area-name AREA
FIND LAST identifier WITHIN area identifier AREA
FIND identifier record-name WITHIN

Note: Revolve points the user to the record-name at the appropriate point in storage for the above command format. Or attempts to resolve the identifier to a specific storage area, as much as possible .


FIND NEXT DUPLICATE WITHIN record-name RECORD
FIND PRIOR DUPLICATE WITHIN identifier RECORD

Note: Revolve associates the record-name or identifier (above) as much as possible with the appropriate data area.


FIND record-name VIA set-name USING data-base-identifier
FIND identifier VIA set-identifier USING data-base-identifier

Note:Revolve associates the record-name or identifier to the data area in a "best effort" to resolve them to a specific command.


FIND NEXT DUPLICATE record-name RECORD WITHIN set-identifier USING data-base-identifier

Note: Revolve associates the record-name with the appropriate data storage field for the above format.


FETCH

Fetch has the same valid formats as FIND and will be supported in the same way. FETCH has the equivalent functionality of a FIND and GET. It positions the user and retrieves the data into the appropriate area.

GET

GET identifier RECORD ON ERROR GO TO error paragraph
GET record-name RECORD ON ERROR GO TO error paragraph

STORE

STORE record-name
STORE identifier

The STORE command writes the data within the database or creates a new occurrence of a record within a database for a specific key. Revolve's association of the record-name and identifier will be done as well as possible depending on logic complexity of the code.

MODIFY

The MODIFY command updates existing records in the database.

DELETE

The DELETE command deletes the record within the database.

KEEP

The KEEP command tells the run unit that the program will want to access this record again.

MODIFY, DELETE, and KEEP all have the same standard formats:

Command record-name RECORD data-base-name ON ERROR GO TO error paragraph.

The identifier is interchangeable with the record-name.

18.3.8 ECL Information Browser

The ECL Information Browser functions in conjunction with the JCL Information Browser. The following are displayed in the ECL Information Browser:

Called programs

Data files


Copyright © 1998 Micro Focus Limited. All rights reserved.
This document and the proprietary marks and names used herein are protected by international law.
PreviousShareable Projects LanguagesNext