| << Prev | - Up - | Next >> |
RecordCThis chapter explains procedures dedicated to feature constraints.
is
{RecordC.is*X?B}
tests whether X has kind record.
tell
{RecordC.tell+L?R}
tells the constraint store that R is a record with label L.
tellSize
{RecordC.tellSize+L+I?R}
tells the constraint store that R is a record with label L.
Signals the implementation that it is likely that I features are told to R. RecordC.tellSize is semantically equivalent to RecordC.tell, but the current implementation optimizes memory allocation.
^
{RecordC.'^'R+LIX}
tells the constraint store that R is a FC having field X at feature LI.
Is supported by the infix operator ^, that is
{RecordC.'^'RLIX}
can also be written as
R^LI=X
width
{RecordC.width*R?D}
posts a propagator for the constraint that D is the width of R. Also tells the constraint store that D is a finite domain integer.
reflectArity
{RecordC.reflectArity*R?LIs}
returns a list LIs containing the currently known features of R.
monitorArity
{RecordC.monitorArity*R?P?LIs}
returns a nullary procedure P and a stream LIs containing the currently known features of R.
Features appear in the stream as soon as they become known to the constraint store. Application of P closes the stream and deletes the propagator. The stream is automatically closed once the constraint store determines R.
hasLabel
{RecordC.hasLabel*R?B}
blocks until R becomes a feature structure. Tests whether R has been told a label with RecordC.tell.
| << Prev | - Up - | Next >> |