KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > armedbear > lisp > function_info


1 /*
2  * function_info.java
3  *
4  * Copyright (C) 2004 Peter Graves
5  * $Id: function_info.java,v 1.2 2004/08/21 16:21:37 piso Exp $
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20  */

21
22 package org.armedbear.lisp;
23
24 public final class function_info extends Lisp
25 {
26     static {
27         FUNCTION_TABLE = new EqualHashTable(64, NIL, NIL);
28     }
29
30     // ### function-info name
31
private static final Primitive1 FUNCTION_INFO =
32         new Primitive1("function-info", PACKAGE_SYS, false)
33     {
34         public LispObject execute(LispObject arg) throws ConditionThrowable
35         {
36             LispObject info = FUNCTION_TABLE.get(arg);
37             return info != null ? info : NIL;
38         }
39     };
40
41     // ### %set-function-info name value
42
private static final Primitive2 _SET_FUNCTION_INFO =
43         new Primitive2("%set-function-info", PACKAGE_SYS, false)
44     {
45         public LispObject execute(LispObject first, LispObject second)
46             throws ConditionThrowable
47         {
48             if (second == NIL)
49                 FUNCTION_TABLE.remhash(first);
50             FUNCTION_TABLE.put(first, second);
51             return second;
52         }
53     };
54 }
55
Popular Tags