00001 /* -*- Mode: objc; c-basic-offset: 2; tab-width: 2 indent-tabs-mode: nil -*- */ 00002 /* vim: set filetype=objc ts=2 sw=2 expandtab: */ 00003 00004 /* 00005 * Copyright (C) 2007 Neil Dantam 00006 * 2007 Jeff Seibert 00007 * 00008 * This program is free software: you can redistribute it and/or modify it 00009 * under the terms of the GNU General Public License, verson 3 ONLY, as 00010 * published by the Free Software Foundation. 00011 * 00012 * This program is distributed in the hope that it will be useful, but WITHOUT 00013 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00014 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 00015 * more details. 00016 * 00017 * You should have received a copy of the GNU General Public License along with 00018 * this program. If not, see <http://www.gnu.org/licenses/>. 00019 */ 00020 00029 #ifndef _SCOPE_H_ 00030 #define _SCOPE_H 00031 00032 #include <stdio.h> 00033 #include <objc/Object.h> 00034 #include <assert.h> 00035 #include "symtable.h" 00036 00039 @interface Scope : Object { 00040 SymTable* table; 00041 Scope* parent; 00042 } 00046 -(Scope*) begin; 00051 -(Scope*) end; 00054 -(void) add: (char *)key to: (id) val; 00059 -(id) find: (char*) key; 00060 @end 00061 00062 #endif