org.kiama.attribution.Attribution

CachedAttribute

abstract class CachedAttribute[T <: AnyRef, U] extends Attribute[T, U]

An attribute of a node type T with value of type U, supported by a memo table and circularity test. The value of the attribute is computed by the function f. 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 an IllegalStateException.

Source
Attribution.scala
Linear Supertypes
Attribute[T, U], (T) ⇒ U, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. CachedAttribute
  2. Attribute
  3. Function1
  4. AnyRef
  5. Any
Visibility
  1. Public
  2. All

Instance Constructors

  1. new CachedAttribute(f: (T) ⇒ U)

Abstract Value Members

  1. abstract def optName: Option[String]

    An optional name, used in debugging output if present.

    An optional name, used in debugging output if present.

    Definition Classes
    Attribute

Concrete Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. def andThen[A](g: (U) ⇒ A): (T) ⇒ A

    Definition Classes
    Function1
  7. def apply(t: T): U

    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.

    Definition Classes
    CachedAttribute → Function1
  8. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  9. def clone(): AnyRef

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  10. def compose[A](g: (A) ⇒ T): (A) ⇒ U

    Definition Classes
    Function1
  11. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  12. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  13. def finalize(): Unit

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  14. final def getClass(): java.lang.Class[_]

    Definition Classes
    AnyRef → Any
  15. def hasBeenComputedAt(t: T): Boolean

    Has the value of this attribute at t already been computed or not?

  16. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  17. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  18. val memo: IdentityHashMap[T, Option[U]]

    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.

    Attributes
    protected
  19. var memoVersion: Int

    The current version number of the memo table.

    The current version number of the memo table.

    Attributes
    protected
  20. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  21. final def notify(): Unit

    Definition Classes
    AnyRef
  22. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  23. def reportCycle(t: T): U

    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.

    Definition Classes
    Attribute
  24. def reset(): Unit

    Immediately reset this attribute's memoisation cache.

  25. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  26. def toString(): String

    Definition Classes
    Function1 → AnyRef → Any
  27. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  28. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  29. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()

Inherited from Attribute[T, U]

Inherited from (T) ⇒ U

Inherited from AnyRef

Inherited from Any