7 #include "assoc-iter.hh"
10 Symtables::Symtables()
14 Symtables::Symtables(Symtables
const &s
)
16 for (Assoc_iter
<String
, Symtable
*> i(s
); i
.ok(); i
++) {
17 add(i
.key(), new Symtable(*i
.val()));
21 Symtables::~Symtables()
23 for (Assoc_iter
<String
, Symtable
*> i(*this); i
.ok(); i
++) {
29 Symtable::lookup(String s
) const
34 error( "Unknown symbol `" +s
+"'\n");
36 Symbol sy
; // unreachable
41 Symtables::operator()(String s
)
43 return Assoc
<String
, Symtable
*>::operator[](s
);
46 Symtables::print() const
48 for (Assoc_iter
<String
, Symtable
*> i(*this); i
.ok(); i
++) {
49 mtor
<< "table \'" << i
.key() << "\' {\n";
55 Symtable::print() const
57 for (Assoc_iter
<String
, Symbol
> i(*this); i
.ok(); i
++) {
58 mtor
<< "\'" << i
.key() << "\'->" << i
.val().str() << "\n";