next up previous contents
Next: Calls to external functions Up: Predicates in rules Previous: Negated predicates

Checked calls to external predicate functions


\begin{verbsyntax}\onerule{ProcedureCall}{Ident '(' ActualParameter // ',' [ '==>' ActualParameter // ',' ] ')'}
\end{verbsyntax}

If a predicate starts with a ?, then assumes that the rest is a call to a C function returning a boolean. Thus it generates this call and checks its result with TRUE (integer constant 1). If the called predicate fails, also the rule fails. Otherwise the rule test is continued.

The list of actual parameters to a call must consist of simple variables. There is an IN parameter list (before the ==>) and an OUT parameter list (after the ==>). The IN parameters are considered to be pattern variables which are handed over to the called routine. The OUT parameters are also handed over as reference parameters, i.e. their addresses are handed over.



Uwe Assmann
1998-12-22