---
title: "PL/I, HLASM and REXX"
---

# PL/I, HLASM and REXX

Enterprise PL/I, High Level Assembler and REXX as languages of the Mainframe module, with outlines, navigation, include and macro members from local folders and host libraries, compile and check on z/OS, and REXX execs run on z/OS.

**Verification state:** the PL/I, HLASM and REXX readers are **verified on Linux** on IBM's Z Open Editor sample (PL/I with SYSLIB and DD-name includes, HLASM including a 6,432-line RACF exit, REXX with `/*%INCLUDE*/`) and AWS CardDemo's assembler. **Compile on z/OS for PL/I and HLASM is modelled**: no compile has run against Enterprise PL/I or HLASM, and the listing layouts are taken from documentation. The verification kit has PL/I and HLASM compile and check steps.

## In the editor

Each language has a grammar to its column rules, outline, Go to Definition, references, highlights, hover, links and folding.

| Language | Column rules and includes |
|---|---|
| Enterprise PL/I | Margins 2 to 72, `%PROCESS`, `%INCLUDE member` and `%INCLUDE ddname(member)` |
| HLASM | Name, operation, operand and remarks fields, continuation in column 72; COPY members and macros |
| REXX | Nested comments; `/*%INCLUDE member*/` |

Include, COPY and macro members are found in local folders, then in host libraries, then (HLASM) in SYS1.MACLIB and SYS1.MODGEN. Missing members are marked in Problems. The libraries are set by `pli`, `hlasm` and `rexx` in `mainframe.json` or ZAPP property groups; `extensions` names the files' extensions.

PL/I preprocessor statements are skipped, not evaluated, and HLASM's ICTL is not read.

## In the application map

PL/I and HLASM programs, their includes, calls and files appear in the [application map](https://neuralinverse.com/docs/modules/mainframe/application-map/), host-project members included.

## Compile and check on z/OS

With `host.compile.profiles.pli` and `host.compile.profiles.hlasm`, **Compile on z/OS** and **Check on z/OS** work as for COBOL (see [Compile and check on z/OS](https://neuralinverse.com/docs/modules/mainframe/compile/)), with IBM's IBMZCB and ASMACL procedures unless you name the shop's. Enterprise PL/I (IBM*nnnn*) and ASMA messages land on the local line.

## REXX execs on z/OS

- **Run REXX Exec on z/OS** on a member enters `EXEC 'DSN(MEMBER)' 'parameters'` in the connection's TSO/E terminal.
- From the REXX editor, an exec of the workspace runs as a batch TSO/E job after the usual submit confirmation; no data set of yours is written.

See [TSO/E, the 3270 session and shop actions](https://neuralinverse.com/docs/modules/mainframe/tso-and-3270/).
