class NAMESPACE
****
An object which is a C namespace.


Flattened version is here



Public


Readable Attributes
attr counter:INT;
attr map:NAMEMAP;
attr set:FSET{STR};
attr uniques:FMAP{STR,INT};

Writable Attributes
attr counter:INT;
attr map:NAMEMAP;
attr set:FSET{STR};
attr uniques:FMAP{STR,INT};

Features
create:SAME
forbid(s:STR)
get(ob:$OB):STR
insert(ob:$OB,nm:STR)
is_taken(s:STR):BOOL
next_unique_with_prefix(s:STR):STR
**** Gets next unique name. This one doesn't start trying suffixes at '1', so it won't be quadratic in finding names. Note that the returned name is not inserted! In general use unique_with_prefix instead.
unique_with_prefix(s:STR):STR
**** Generate a unique name. This one doesn't start trying suffixes at '1', so it won't be quadratic in finding names. Use this for names that don't make it into header files, so that recompilations won't occur.
with_prefix(s:STR):STR
**** Starts at '1' each time, to try to minimize the extent of namespace changes between compiles.