immutable class IDENT < $HASH
****
Representation of identifiers in the Sather compiler. A immutable class with one attribute: a pointer to a string containing the identifier. The string objects are uniquely associated with the string, so SI_IDENT equality can be used to test for string equality. Note that IDENTs use a shared (global) table, so they aren't reentrant.


Flattened version is here

Ancestors
$HASH $IS_EQ



Public


Readable Attributes
attr str:STR;
**** The string represented by self.

Readonly Shareds
shared tmp_count:INT;

Writable Shareds
shared tmp_count:INT;

Features
create(s:STR):IDENT
**** The identifier corresonding to the string `s'.
hash:INT
**** MBK, SYS::id(str) by itself not that good a hash.
is_eq(i:SAME):BOOL
**** Test whether self is the same identifier as `i'.
is_iter:BOOL
**** True if self is the name of an iter (ends with a "!").
is_neq(i:SAME):BOOL
**** Test whether self is the same identifier as `i'.
next_tmp(oldident:STR):STR
str(i:INT): STR
**** Returns a name with a list of empty parameters.
str_in(s:FSTR):FSTR
**** Append the string represented by self to `s'.


Private

shared ident_tbl:IDENT_TBL;
shared ident_tbl:IDENT_TBL;
attr str:STR;
**** The string represented by self.