Version 6 (modified by archibald, 8 years ago) (diff)

--

Namespaces

We need to create name spaces.

Namespaces are

  • commonly structured as hierarchies to allow reuse of names in different contexts.
  • typically employed for the purpose of grouping symbols and identifiers around a particular functionality and to avoid name collisions between multiple identifiers that share the same name.
  • hierarchical, ie sets of namespaces can be nested within another namespace

To store namespaces we need a structure similar to that detailed below ... explaination of the notation

NAMESPACE $project:tdx - $system:lang

  SINGLETON design
    namespace ourNameSpaces = NEW namespace("system")

  CLASS namespace(ubyte$ name)
    namespace{} subSpaces
    
    namespace(namespace) addNamespace(newNameSpace) =
    {
      subSpaces->add(newNameSpace)
      RETURN newNameSpace
    }

Attachments