An attribute of a node type T with value of type U which has a circular
definition.
A partial function composed of an ordered, mutable buffer of PartialFunction instances.
A dynamic atribute defined initially by the function f.
Support for parameterised attributes: argument, node pair comparison.
Define a dynamic attribute of T nodes of type U by the function f.
Define an attribute of T nodes of type U by the function f,
which takes the current node and its parent as its arguments.
Define an attribute of T nodes of type U by the function f,
which takes the current node and its parent as its arguments.
T must be Attributable so that parents can be accessed.
Define a circular attribute of T nodes of type U by the function f.
Define a circular attribute of T nodes of type U by the function f.
f is allowed to depend on the value of this attribute, which will be
given by init initially and will be evaluated iteratively until a
fixed point is reached (in conjunction with other circular attributes
on which it depends). The final value is cached.
Define an attribute of T nodes of type U given by the constant value u.
Define an attribute of T nodes of type U given by the constant value u.
u is evaluated at most once.
Deactivates a module that defines dynamic attributes,
activated using use.
Initialise the Attributable tree rooted at t so that it is ready for
attribution.
Initialise the Attributable tree rooted at t so that it is ready for
attribution. At present, the only initialisation performed is to set node
attributes such as parent and children so that nodes can generically refer
to their neighbours. If you wish to use any of these properties, you must
call this method before doing so. Otherwise, the node properties should
not be used and there is no need to call this method.
Implicitly converts partial functions to support the + operator.
Lazily resets all memoisation tables.
Activates a module that defines dynamic attributes,
allowing it to be deactivated again using endUse.
Defines a new scope in which a dynamic attribution module is active.
Defines a new scope in which a dynamic attribution module is active. At the end of the scope, the module is unloaded again.
A module defining dynamic attributes.
A block to evaluate.
Reusable implementation of dynamic attributes where definitions can be extended at runtime by the addition of new equations, which can later be removed.