The CLIEXPR macro evaluates arithmetic, logical and string expressions. The expression is passed in an input field, the result is returned in an output field. It is possible to request a specific output format for the result (binary number, Boolean constant, string).
The macro can also be called using MF = M.
Operation | Operands |
CLIEXPR | MF = E |
MF = D [,PREFIX = C / prefix ] | |
MF = C ,PREFIX = C / prefix [,MACID = LIE / macid] | |
MF = L ,INPUT@ = <pointer> ,INPUTL = <integer 0..2147483647> ,OUTPUT@ = <pointer> ,OUTPUTL = <integer 0..2147483647> ,VFORM = *BY-VALUE / *STRING ,OTYPE = <pointer> ,OACTL = <pointer> ,PROT@ = NULL / <pointer> ,PROTL = 0 / <integer 0..2147483647> ,OPROTL = NULL / <pointer> |
Return codes (hexadecimal)
Subcode2 | Subcode1 | Maincode | Meaning |
00 | 00 | 0000 | Normal execution |
01 | 00 | 0000 | Overflow of PROT field (Warning) |
00 | 40 | 0001 | Syntax error in expression to be evaluated |
01 | 40 | 0001 | Overflow of PROT field |
00 | 40 | 0002 | Error during evaluation |
01 | 40 | 0002 | Overflow of PROT field |
00 | 40 | 0003 | Output field too short |
00 | 01 | 0004 | Input field not specified or not aligned |
01 | 01 | 0004 | Output field not specified or not aligned |
02 | 01 | 0004 | Log field (not aligned) |
03 | 01 | 0004 | Other fields (not aligned) |
04 | 01 | 0004 | Field address specified but field not accessible |
00 | 40 | 0005 | Insufficient space in caller’s address space |
01 | 20 | 0006 | System error |
00 | 40 | 0007 | Invalid procedure format; macro execution has been aborted |
00 | 01 | FFFF | Wrong specification for UNIT or FUNCTION in standard header |
00 | 02 | FFFF | Requested function is not supported |
00 | 03 | FFFF | Wrong version specification in standard header |