Compile a quality expression IRQ_COMP
’
, i.e. converted into a
form that can be used by IRQ_SBADx. The compiled quality expression is identified by the returned
IRQ identifier which should be released using IRQ_ANNUL when no longer needed. If any error is
reported, then IRQ is returned set to the value IRQ__NOID.
If any quality names referenced in the quality expression are not defined in the NDF specified by LOCS, they are returned in UNDEF, the number of such undefined quality names is returned in NUNDEF, an error is reported and STATUS is returned with value IRQ__NOQNM. Additionally, if INFO is true, then a message is generated identifying each undefined quality name.
If any of the STATUS values IRQ__BADSY, IRQ__MSOPT or IRQ__MSOPD are returned (all of which correspond to various forms of syntax error in the quality expression, see ID6 appendix E), a pointer to the approximate position of the error within the quality expression is returned in ERRPNT.
"
Unrecognised logical operator or constant"
), IRQ__MSOPT ( "
Missing operator"
) or IRQ__MSOPD ( "
Missing operand"
) are returned, then ERRPNT
returns the offset within the quality expression at which the error was detected. Note, the
offset refers to the returned form of QEXP, not the given form. These will be different if the
given form of QEXP has any leading blanks. An offset of zero is returned if none of the
errors associated with the above STATUS values occur.