CLP is an acronym for Control Language Program.
In some realities, this is comparable to software that is the "glue" connecting higher level language programs like RPG; data base files and their over-rides; screen and print "files" and their over-rides; and other objects with Menus ... typically when we take a menu option, we are launching a CLP program.
CLP Unique Commands
Some characters have special meaning in CL:
Ref: CL Programming, Expressions in CL commands
CLP Built-in Functions
Like RPG, CLP also supports many built-in functions. These would typically be used in CHGVAR and/or IF statements to manipulate variable data before its subsequent use. Initially, CLP offered the following built-in functions.
|%BINary||Convert signed decimal data to or from binary character format.|
|%SubSTring||Extract or set a subset of another character string.|
|%SWITCH||Evaluate one or more of the eight job switches and return a Boolean result.|
As of V5R4, CL allows the use of pointers. There were some problems with uninitialised pointers, and PTFs were issued. As of 15 Feb 2008, 5722-SS1:
These are immediate PTFs, but you will need to re-compile any CL programs using pointers in order to get the issues fixed.
One can't compare a pointer to *NULL, but a clever idea is to create an unused pointer (which will be set to *NULL if the above PTFs are applied) and compare to that. Here is a snippet from Tom L. for a CL program that performs getenv from a thread on RPG400-L.
dcl &pNull *ptr /* Auto-initialized to *null */ if ( &pEnvVar *eq &pNull ) do
This category has only the following subcategory.
- [×] CLP/400 examples (8 P)