Sather Home Page

Section 8.1.2.1:
ELT_NIL

class ELT_NIL{ETP}

Formal Types

types

SAME = ELT_NIL_ETP ;

This class provides a nil value for a container element and a nil test. The bit-pattern used to represent the 'nil' value is determined by the class itself if it derives from $NIL or is identically void

It should be noted that this cannot be a partial class because of the rule that a call into a partial class cannot be made from within another partial class.


elt_nil

This operation is provided to return a 'nil' value - one which is distinguished by not being a valid bit-pattern for representation of objects of that class.

elt_nil : ETP
Formal Signature
elt_nil() res : [ETP]
Pre-condition

This is vacuously true since a result is always provided - even if nil!

Post-condition

The auxiliary function typeof is defined in Secyion 6.9.

post (res = nil) or typeof(res) in set $NIL

This routine returns a hash value for the given item, using the hash routine defined in the class of item (if one is defined), otherwise it uses the system defined hash function.


is_elt_nil

This predicate returns true when its argument has the value nil - which, from the definition above may be the value void (see the vdm below for the specification of this)

is_elt_nil (
item : ETP
) : BOOL
Formal Signature

Note that the argument type in this formal signature is an optional one - signifying in Sather terms that the argument may be void!

is_elt_nil(item : [ETP]) res : BOOL
Pre-condition

Since the argument to a call of this predicate may be nil then this is vacuously true.

Post-condition
post (res = (item = nil))
or ((typeof(item) in set $NIL)
and res = ETP.is_nil(item))

This predicate returns true if and only if either the type of item defines a nil value and item has that value or item is void.


Language Index Library Index Basic Index
Comments or enquiries should be made to Keith Hopper.
Page last modified: Wednesday, 24 May 2000.
Produced with Amaya