01: /*
02: * Javassist, a Java-bytecode translator toolkit.
03: * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
04: *
05: * The contents of this file are subject to the Mozilla Public License Version
06: * 1.1 (the "License"); you may not use this file except in compliance with
07: * the License. Alternatively, the contents of this file may be used under
08: * the terms of the GNU Lesser General Public License Version 2.1 or later.
09: *
10: * Software distributed under the License is distributed on an "AS IS" basis,
11: * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12: * for the specific language governing rights and limitations under the
13: * License.
14: */
15:
16: package javassist.compiler;
17:
18: import java.util.HashMap;
19: import javassist.compiler.ast.Declarator;
20:
21: public final class SymbolTable extends HashMap {
22: private SymbolTable parent;
23:
24: public SymbolTable() {
25: this (null);
26: }
27:
28: public SymbolTable(SymbolTable p) {
29: super ();
30: parent = p;
31: }
32:
33: public SymbolTable getParent() {
34: return parent;
35: }
36:
37: public Declarator lookup(String name) {
38: Declarator found = (Declarator) get(name);
39: if (found == null && parent != null)
40: return parent.lookup(name);
41: else
42: return found;
43: }
44:
45: public void append(String name, Declarator value) {
46: put(name, value);
47: }
48: }
|