Version 9.6
 —  Software AG IDL Extractor for PL/I  —

PL/I to IDL Mapping

This document describes how PL/I data types, their attributes and related syntax are mapped to Software AG IDL data types by the IDL Extractor for PL/I. It covers the following topics:


IDL Extractor for PL/I Input

PL/I source code is the input for IDL generation. The IDL Extractor for PL/I inspects the parameter definition of PL/I procedures or PL/I functions and their DECLARE statements.

The sources

Top of page

IDL Extractor for PL/I Output

The IDL Extractor for PL/I generates:

Top of page

Mapping PL/I Data Types to Software AG IDL

The IDL generator maps the following subset of PL/I data types to IDL data types, other PL/I data types as transfer parameters are not supported. If the PL/I source file contains parameters which cannot be mapped to IDL parameters, an IDL file with incorrect IDL syntax will be created.

The following metasymbols and informal terms are used for the Software AG IDL in the table below.

PL/I Data Type Software AG IDL Description Notes
CHARACTER (n) An Alphanumeric 1
CHARACTER (*) AV Alphanumeric variable length  
CHARACTER (n) VARYING AVn Alphanumeric variable length with maximum length 1
GRAPHIC (n) K(n*2) Kanji fixed length 2
GRAPHIC (*) KV Kanji variable length  
GRAPHIC (n) VARYING KV(n*2) Kanji variable length with maximum length 2
BIT (n) B(n/8) Binary 3
BIT (*) BV Binary variable length  
FLOAT BINARY
FLOAT BINARY (21)
FLOAT DECIMAL
FLOAT DECIMAL(6)
F4 Floating point (small)  
FLOAT BINARY (53)
FLOAT DECIMAL (16)
F8 Floating point (large)  
FIXED BINARY
FIXED BINARY (7)
I1 Integer (small)  
FIXED BINARY (15) I2 Integer (medium)  
FIXED BINARY (31) I4 Integer (large)  
BIT
BIT (1)
L Logical  
PIC 'S(m)9[V(n)9]' Nm[.n] Unpacked decimal 4
PIC '(m)9[V(n)9]' NUm[.n] Unpacked decimal unsigned 4
FIXED DECIMAL (m,n) P(m-n)[.n] Packed decimal 5

Notes:

  1. n is the number of graphic characters (DBCS).
  2. n is the number of DBCS characters.
  3. n is the number of bits and n must be a multiple of 8.
  4. m,n, are numbers, where n <=7, n<=29 and m+n <=29.
  5. m,n, are numbers, where n <=7 and m <= 29.

Top of page

Functions

The function return value of a PL/I external function will be mapped to an additional parameter "Function_Result" with the direction out; this parameter will be appended to the last parameter of the procedure.

For example, the external function R_CHAR

R_CHAR:  PROCEDURE (p) RETURNS ( CHAR (20) ) ;
          PUT SKIP LIST('R_CHAR $dollar;Revision: n.n $');
          DCL p CHAR(10);
          RETURN (p);
 END R_CHAR;

will be mapped to the Software AG IDL program:

program 'R_FLOAT' is
      define data parameter
      1 p     (F4)      In Out
      1 Function_Result         (F4)      Out
      end-define

Top of page

Structures

Structures are mapped to Software AG IDL groups. Asterisks as fillers or reserved items are not supported.

declare 1 Payroll, 				
          2 Name, 					
                       3 Last char(20), 			
                       3 First char(15),
          2 Hours,
                       3 Regular fixed dec(5,2),
                       3 Overtime fixed dec(5,2),
          2 Rate,
                       3 Regular fixed dec(3,2),
                       3 Overtime fixed dec(3,2);

will be mapped to Software AG IDL

1 Payroll In Out
 2 Name 	
  3 Last (A20)
  3 First (A15)
 2 Hours 	
  3 Regular (P3.2)
  3 Overtime (P3.2)
 2 Rate 	
  3 Regular (P1.2)
  3 Overtime (P1.2)

Top of page

Arrays

Arrays are mapped to Software AG IDL arrays. The dimension of an array is restricted to 3.

DCL A CHAR(10) DIMENSION (100);
DCL B CHAR(10) DIMENSION (*);
DCL C CHAR(10) DIMENSION (-5:10);
DCL D CHAR(10) DIMENSION (10,10,10);

will be mapped to

1 A (A10/100)      In Out
1 B (A10/V)        In Out
1 C (A10/16)       In Out
1 D (A10/10,10,10) In Out

Top of page

Aligned

The ALIGNED attribute will be mapped to the Software AG IDL attribute aligned. See attribute-list under Software AG IDL Grammar.

Top of page

PL/I to IDL Restrictions

The following table lists features, clauses and items that are not supported by the IDL Extractor for PL/I:

Item Description
PL/I Preprocessor MACRO preprocessor for PL/I source program alteration. It is executed prior to compilation
UNALIGNED attribute The UNALIGNED attribute reduces to one byte the alignment requirements for halfwords, fullwords, and doublewords and it reduces to one bit the alignment requirement for bit strings.

Top of page