org.kiama.attribution.Attribution
An optional name, used in debugging output if present.
An optional name, used in debugging output if present.
Return the value of this attribute for node t
, raising an error if
it depends on itself.
Return the value of this attribute for node t
, raising an error if
it depends on itself.
Has the value of this attribute at t
already been computed or not?
The memo table for this attribute, with memo(t) == Some(v)
represents
the node t
having the value v
for this attribute.
The memo table for this attribute, with memo(t) == Some(v)
represents
the node t
having the value v
for this attribute. memo(t) = None
means that the attribute for t
is currently being evaluated. Note that
the memo table needs to be some form of identity map so that value equal
trees are not treated as equal unless they are actually the same reference.
The current version number of the memo table.
The current version number of the memo table.
Report a cycle in the calculation of this attribute discovered when
evaluating the attribute on value t
.
Report a cycle in the calculation of this attribute discovered when
evaluating the attribute on value t
. Throws an IllegalStateException
.
Immediately reset this attribute's memoisation cache.
An attribute of a node type
T
with value of typeU
, supported by a memo table and circularity test. The value of the attribute is computed by the functionf
. The result is memoised so that it is only evaluated once.f
should not itself require the value of this attribute. If it does, a circularity error is reported by throwing anIllegalStateException
.