trait UncachedAttributionCore extends AttributionCommon with Memoiser
Reusable implementation of attribution of syntax trees in a functional style with attribute values computed each time they are accessed.
- Alphabetic
- By Inheritance
- UncachedAttributionCore
- Memoiser
- AttributionCommon
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
class
ConstantAttribute
[T, U] extends Attribute[T, U]
A constant attribute of a node type
Twith value of typeU.A constant attribute of a node type
Twith value of typeU. The value is given by the computationuwhich is evaluated at most once.- Definition Classes
- AttributionCommon
-
class
UncachedAttribute
[T, U] extends Attribute[T, U] with IdMemoised[T, Unit]
An attribute of a node type
Twith value of typeU, supported by a circularity test.An attribute of a node type
Twith value of typeU, supported by a circularity test. The value of the attribute is computed by the functionf.fwill be called each time the value of the attribute is accessed.fshould not itself require the value of this attribute. If it does, a circularity error is reported by throwing anIllegalStateException. -
class
UncachedParamAttribute
[A, T, U] extends (A) ⇒ Attribute[T, U] with Memoised[ParamAttributeKey, Unit]
A variation of the
UncachedAttributeclass for parameterised attributes. -
trait
IdMemoised
[T, U] extends MemoisedBase[T, U]
A memoised entity that weakly holds onto its keys and uses identity to compare them.
A memoised entity that weakly holds onto its keys and uses identity to compare them.
- Definition Classes
- Memoiser
-
trait
Memoised
[T, U] extends MemoisedBase[T, U]
A memoised entity that uses equality to compare keys.
A memoised entity that uses equality to compare keys.
- Definition Classes
- Memoiser
-
trait
MemoisedBase
[T, U] extends AnyRef
Common interface for encapsulation of memoisation for a single memoised entity backed by a configurable cache.
Common interface for encapsulation of memoisation for a single memoised entity backed by a configurable cache.
- Definition Classes
- Memoiser
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
attr[T, U](name: String, f: (T) ⇒ U): UncachedAttribute[T, U]
As for the other
attrwith the first argument specifying a name for the constructed attribute. -
macro
def
attr[T, U](f: (T) ⇒ U): UncachedAttribute[T, U]
Define an uncached attribute of
Tnodes of typeUby the functionf, which should not depend on the value of this attribute.Define an uncached attribute of
Tnodes of typeUby the functionf, which should not depend on the value of this attribute. The computed attribute value is cached so it will be computed at most once. -
def
childAttr[T <: Attributable, U](name: String, f: (T) ⇒ (Attributable) ⇒ U): UncachedAttribute[T, U]
As for the other
childAttrwith the first argument specifying a name for the constructed attribute. -
macro
def
childAttr[T <: Attributable, U](f: (T) ⇒ (Attributable) ⇒ U): UncachedAttribute[T, U]
Define an uncached attribute of
Tnodes of typeUby the functionf, which takes the current node and its parent as its arguments.Define an uncached attribute of
Tnodes of typeUby the functionf, which takes the current node and its parent as its arguments.Tmust be a sub-type ofAttributableso that parents can be accessed generically. -
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
constant[T, U](name: String, u: ⇒ U): Attribute[T, U]
As for the other
constantwith the first argument specifying a name for the constructed attribute.As for the other
constantwith the first argument specifying a name for the constructed attribute.- Definition Classes
- AttributionCommon
-
macro
def
constant[T, U](u: ⇒ U): Attribute[T, U]
Define a constant attribute of
Tnodes of typeUgiven by the valueu.Define a constant attribute of
Tnodes of typeUgiven by the valueu.uis evaluated at most once.- Definition Classes
- AttributionCommon
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
def
initTree[T <: Attributable](t: T): Unit
Initialise the
Attributabletree rooted attso that it is ready for attribution.Initialise the
Attributabletree rooted attso 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.- Definition Classes
- AttributionCommon
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
paramAttr[V, T, U](name: String, f: (V) ⇒ (T) ⇒ U): UncachedParamAttribute[V, T, U]
As for the other
paramAttrwith the first argument specifying a name for the constructed attribute. -
macro
def
paramAttr[V, T, U](f: (V) ⇒ (T) ⇒ U): UncachedParamAttribute[V, T, U]
Define a parameterised uncached attribute of
Tnodes of typeUby the functionf, which takes an argument of typeA.Define a parameterised uncached attribute of
Tnodes of typeUby the functionf, which takes an argument of typeA. The computed attribute value for a givenTandApair is cached so it will be computed at most once. -
def
resetMemo(): Unit
Lazily reset all memoisation tables.
Lazily reset all memoisation tables. The actual resets will only happen the next time the value of each attribute is accessed.
- Definition Classes
- Memoiser
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )