src/cons.h

Go to the documentation of this file.
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  * Copyright (C) 2007 Neil Dantam
00005  *               2007 Jeff Seibert
00006  *
00007  * This program is free software: you can redistribute it and/or modify it
00008  * under the terms of the GNU General Public License, verson 3 ONLY, as
00009  * published by the Free Software Foundation.
00010  * 
00011  * This program is distributed in the hope that it will be useful, but WITHOUT
00012  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00013  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
00014  * more details.
00015  * 
00016  * You should have received a copy of the GNU General Public License along with
00017  * this program.  If not, see <http://www.gnu.org/licenses/>.
00018  *
00019  */
00020 
00021 
00032 #ifndef _CONS_H_
00033 #define _CONS_H_
00034 
00035 #include <objc/Object.h>
00036 
00039 @interface Cons: Object {
00040   id first; 
00041   id rest;  
00042 }
00043 
00049 +(void) appendTo: (Cons**) pcons item: (id) o;
00050 
00052 -(void) append: (id) o;
00053 
00058 -(void) appendList: (Cons*) o;
00059 
00062 -(id) first;
00063 
00066 -(id) rest;
00067 
00070 -(void) setFirst: (id) o;
00071 
00074 -(void) setRest: (id) o;
00075 
00078 -(id) car;
00081 -(id) cdr;
00082 
00083 
00086 -(id*) pcar;
00089 -(id*) pcdr;
00090 
00093 -(id*) pfirst;
00096 -(id*) prest;
00097 
00101 -(void) nilCars;
00102 
00103 
00106 -(void) setCar: (id) o;
00109 -(void) setCdr: (id) o;
00110 
00113 -(BOOL) areMembersOf: (Class) c;
00114 
00117 -(BOOL) areKindsOf: (Class) c;
00118 
00125 -(id) stealCar;
00126 
00127 
00134 -(id) stealCdr;
00135 
00138 -(int) size;
00139 @end
00140 
00143 Cons *cons( id f, id r);
00144 
00147 void push( Cons **c, id val);
00148 
00149 
00150 #endif

Generated on Mon Dec 24 06:11:58 2007 for gfront by  doxygen 1.5.2