classCircularAttribute[T <: AnyRef, U] extends (T) ⇒ U
An attribute of a node type T with value of type U which has a circular
definition. The value of the attribute is computed by the function f
which may itself use the value of the attribute. init specifies an
initial value for the attribute. The attribute (and any circular attributes
on which it depends) are evaluated until no value changes (i.e., a fixed
point is reached). The final result is memoised so that subsequent evaluations
return the same value.
This code implements the basic circular evaluation algorithm from "Circular
Reference Attributed Grammars - their Evaluation and Applications", by Magnusson
and Hedin from LDTA 2003.
An attribute of a node type
Twith value of typeUwhich has a circular definition. The value of the attribute is computed by the function f which may itself use the value of the attribute. init specifies an initial value for the attribute. The attribute (and any circular attributes on which it depends) are evaluated until no value changes (i.e., a fixed point is reached). The final result is memoised so that subsequent evaluations return the same value.This code implements the basic circular evaluation algorithm from "Circular Reference Attributed Grammars - their Evaluation and Applications", by Magnusson and Hedin from LDTA 2003.