Home | History | Annotate | Download | only in compiler
      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