PL/j was originally a three-pronged approach, which I believe makes it
unique:
* An XEDIT macro to format code with indents and also to uppercase the
parts of an instruction that must be uppercase with HASM.
* The macro library
* A listing post processor for HASM listings that shows a select line
of generated code with the macro instruction, but suppresses the
generated code lines from the listing. PRINT ALMOSTNOGEN, if you like.
I.e., an IF instruction would carry the branch code. This also meant
repagination.
I dropped the listing post processor since I no longer print listings.