/Users/lyon/j4p/src/javassist/compiler/SymbolTable.java
|
1 /*
2 * Javassist, a Java-bytecode translator toolkit.
3 * Copyright (C) 1999-2003 Shigeru Chiba. All Rights Reserved.
4 *
5 * The contents of this file are subject to the Mozilla Public License Version
6 * 1.1 (the "License"); you may not use this file except in compliance with
7 * the License. Alternatively, the contents of this file may be used under
8 * the terms of the GNU Lesser General Public License Version 2.1 or later.
9 *
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
20 import javassist.compiler.ast.Declarator;
21
22 public final class SymbolTable extends HashMap {
23 private SymbolTable parent;
24
25 public SymbolTable() {
26 this(null);
27 }
28
29 public SymbolTable(SymbolTable p) {
30 super();
31 parent = p;
32 }
33
34 public SymbolTable getParent() {
35 return parent;
36 }
37
38 public Declarator lookup(String name) {
39 Declarator found = (Declarator) get(name);
40 if (found == null && parent != null)
41 return parent.lookup(name);
42 else
43 return found;
44 }
45
46 public void append(String name, Declarator value) {
47 put(name, value);
48 }
49 }
50