<< Prev | - Up - | Next >> |
RecordC
This 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
+LI
X
}
tells the constraint store that R
is a FC having field X
at feature LI
.
Is supported by the infix operator ^
, that is
{RecordC.'^'
R
LI
X
}
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 >> |