1 # This file is part of NIT ( http://www.nitlanguage.org ).
3 # Copyright 2005-2008 Jean Privat <jean@pryen.org>
5 # This file is free software, which comes along with NIT. This software is
6 # distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
7 # without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
8 # PARTICULAR PURPOSE. You can modify it is you want, provided this header
9 # is kept unaltered, and a notification of the changes is added.
10 # You are allowed to redistribute it and sell it, alone or is a part of
13 # Library for simple interning of strings
17 # Get the unique corresponding to the string
20 var symbol_dictionary
= once
new HashMap[String, Symbol]
21 if symbol_dictionary
.has_key
(self) then
22 return symbol_dictionary
[self]
24 var symbol
= new Symbol(self)
25 symbol_dictionary
[self] = symbol
31 # A symbol is a unique immutable string
33 private var string
: String
34 redef fun to_s
do return string
.to_s