org.kiama.attribution

AttributionBase

trait AttributionBase extends AnyRef

Base support for attribution of syntax trees in a functional style. Includes circular attributes but needs to be augmented with basic attributes and parameterised attributes.

Source
Attribution.scala
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. AttributionBase
  2. AnyRef
  3. Any
Visibility
  1. Public
  2. All

Type Members

  1. abstract class Attribute[T <: AnyRef, U] extends (T) ⇒ U

    Common functionality for all attributes.

  2. abstract class CircularAttribute[T <: AnyRef, U] extends Attribute[T, U]

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

  3. abstract class ConstantAttribute[T <: AnyRef, U] extends Attribute[T, U]

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

  4. class ParamAttributeKey extends AnyRef

    Support for parameterised attributes: argument, node pair comparison.

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 circular[T <: AnyRef, U](name: String)(init: U)(f: (T) ⇒ U): (T) ⇒ U

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

    Define a 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. name is used in debugging output to identify this attribute.

  8. def circular[T <: AnyRef, U](init: U)(f: (T) ⇒ U): (T) ⇒ U

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

    Define an anonymous 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.

  9. def circular[T <: AnyRef, U](optNameDef: Option[String])(init: U)(f: (T) ⇒ U): (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. If optNameDef is not None, then optNameDef.get is used in debugging output to identify this attribute.

  10. def clone(): AnyRef

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

    Define an optionally named constanat attribute of T nodes of type U given by the value u.

    Define an optionally named constanat attribute of T nodes of type U given by the value u. u is evaluated at most once. name is used in debugging output to identify this attribute.

  12. def constant[T <: AnyRef, U](u: ⇒ U): Attribute[T, U]

    Define an anonymous constanat attribute of T nodes of type U given by the value u.

    Define an anonymous constanat attribute of T nodes of type U given by the value u. u is evaluated at most once.

  13. def constant[T <: AnyRef, U](optNameDef: Option[String])(u: ⇒ U): Attribute[T, U]

    Define an optionally named constanat attribute of T nodes of type U given by the value u.

    Define an optionally named constanat attribute of T nodes of type U given by the value u. u is evaluated at most once. If optNameDef is not None, then optNameDef.get is used in debugging output to identify this attribute.

  14. final def eq(arg0: AnyRef): Boolean

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

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

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

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

    Definition Classes
    AnyRef → Any
  19. def initTree[T <: Attributable](t: T): Unit

    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.

  20. final def isInstanceOf[T0]: Boolean

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

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

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

    Definition Classes
    AnyRef
  24. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  25. def toString(): String

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

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws()

Inherited from AnyRef

Inherited from Any