1 /* 2 * Javassist, a Java-bytecode translator toolkit. 3 * Copyright (C) 1999-2007 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 import javassist.compiler.ast.Declarator; 20 21 public final class SymbolTable extends HashMap { 22 private SymbolTable parent; 23 24 public SymbolTable() { this(null); } 25 26 public SymbolTable(SymbolTable p) { 27 super(); 28 parent = p; 29 } 30 31 public SymbolTable getParent() { return parent; } 32 33 public Declarator lookup(String name) { 34 Declarator found = (Declarator)get(name); 35 if (found == null && parent != null) 36 return parent.lookup(name); 37 else 38 return found; 39 } 40 41 public void append(String name, Declarator value) { 42 put(name, value); 43 } 44 } 45