org.bitbucket.inkytonik.kiama.attribution

Attribution

class Attribution extends AttributionCore

An attribution module. Use an instance of this module to encapuslate related attributes. You should ensure that more than one circular attribute evaluation from a single module is not executing at the same time because the current implementation has shared state between related circular attributes. If your attributes are unrelated (i.e., can't possibly call each other) you should base them on different attribution module instances and then it is safe for attributes from different collections to execute in parallel.

Source
Attribution.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Attribution
  2. AttributionCore
  3. AttributionCommon
  4. AnyRef
  5. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Attribution()

Type Members

  1. class CachedAttribute[T, 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.

  2. class CachedDynamicAttribute[T, U] extends CachedAttribute[T, U]

    A cached dynamic attribute of a node type T with value of type U, supported by a memo table and circularity test.

  3. class CachedParamAttribute[A, T, U] extends (A) ⇒ Attribute[T, U]

    A variation of the CachedAttribute class for parameterised attributes.

  4. class CircularAttribute[T, U] extends Attribute[T, U]

    An attribute of a node type T with value of type U which has a circular definition.

  5. class ConstantAttribute[T, U] extends Attribute[T, U]

    A constant attribute of a node type T with value of type U.

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. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def attr[T, U](f: (T) ⇒ U): CachedAttribute[T, U]

    Define a cached attribute of T nodes of type U by the function f, which should not depend on the value of this attribute.

    Define a cached attribute of T nodes of type U by the function f, which should not depend on the value of this attribute. The computed attribute value is cached so it will be computed at most once.

    Definition Classes
    AttributionCore
    Annotations
    @macroImpl( ... )
  8. def attrWithName[T, U](name: String, f: (T) ⇒ U): CachedAttribute[T, U]

    As for the other attr with the first argument specifying a name for the constructed attribute.

    As for the other attr with the first argument specifying a name for the constructed attribute.

    Definition Classes
    AttributionCore
  9. def circular[T, U](init: U)(f: (T) ⇒ U): CircularAttribute[T, U]

    Define an optionally named circular attribute of T nodes of type U by the function f.

    Define an optionally named 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.

    Definition Classes
    AttributionCore
    Annotations
    @macroImpl( ... )
  10. def circularWithName[T, U](name: String, init: U)(f: (T) ⇒ U): CircularAttribute[T, U]

    As for the other circular with the first argument specifying a name for the constructed attribute.

    As for the other circular with the first argument specifying a name for the constructed attribute.

    Definition Classes
    AttributionCore
  11. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  12. def constant[T, U](name: String, u: ⇒ U): Attribute[T, U]

    As for the other constant with the first argument specifying a name for the constructed attribute.

    As for the other constant with the first argument specifying a name for the constructed attribute.

    Definition Classes
    AttributionCommon
  13. def constant[T, U](u: ⇒ U): Attribute[T, U]

    Define a constant attribute of T nodes of type U given by the value u.

    Define a constant attribute of T nodes of type U given by the value u. u is evaluated at most once.

    Definition Classes
    AttributionCommon
    Annotations
    @macroImpl( ... )
  14. def dynAttr[T, U](f: (T) ⇒ U): CachedDynamicAttribute[T, U]

    Define a cached dynamic attribute of T nodes of type U by the partial function f, which should not depend on the value of this attribute.

    Define a cached dynamic attribute of T nodes of type U by the partial function f, which should not depend on the value of this attribute. The computed attribute value is cached so it will be computed at most once.

    Definition Classes
    AttributionCore
    Annotations
    @macroImpl( ... )
  15. def dynAttrWithName[T, U](name: String, f: (T) ⇒ U): CachedDynamicAttribute[T, U]

    As for the other dynAttr with the first argument specifying a name for the constructed attribute.

    As for the other dynAttr with the first argument specifying a name for the constructed attribute.

    Definition Classes
    AttributionCore
  16. final def eq(arg0: AnyRef): Boolean

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

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

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

    Definition Classes
    AnyRef → Any
  20. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  21. implicit def internalToDynamicAttribute[T, U](f: (T) ⇒ U): CachedDynamicAttribute[T, U]

    Implicitly converts functions to dynamic attributes.

    Implicitly converts functions to dynamic attributes. This conversion allows us to use simpler types for dynamic attributes, but still extend them later.

    Definition Classes
    AttributionCore
  22. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  23. final def ne(arg0: AnyRef): Boolean

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

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

    Definition Classes
    AnyRef
  26. def paramAttr[V, T, U](f: (V) ⇒ (T) ⇒ U): CachedParamAttribute[V, T, U]

    Define a parameterised attribute of T nodes of type U by the function f, which takes an argument of type V.

    Define a parameterised attribute of T nodes of type U by the function f, which takes an argument of type V. The computed attribute value for a given V and T pair is cached so it will be computed at most once.

    Definition Classes
    AttributionCore
    Annotations
    @macroImpl( ... )
  27. def paramAttrWithName[V, T, U](name: String, f: (V) ⇒ (T) ⇒ U): CachedParamAttribute[V, T, U]

    As for the other paramAttr with the first argument specifying a name for the constructed attribute.

    As for the other paramAttr with the first argument specifying a name for the constructed attribute.

    Definition Classes
    AttributionCore
  28. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  29. def toString(): String

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

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AttributionCore

Inherited from AttributionCommon

Inherited from AnyRef

Inherited from Any

Ungrouped