/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