Changeset 4168


Ignore:
Timestamp:
10/02/03 00:02:56 (19 years ago)
Author:
piso
Message:

FMAKUNBOUND, REMPROP

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/Primitives.java

    r4166 r4168  
    33 *
    44 * Copyright (C) 2002-2003 Peter Graves
    5  * $Id: Primitives.java,v 1.458 2003-10-01 23:04:27 piso Exp $
     5 * $Id: Primitives.java,v 1.459 2003-10-02 00:02:56 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    5454    private static final int EVAL                       = 20;
    5555    private static final int EVENP                      = 21;
    56     private static final int FMAKUNBOUND                = 22;
    57     private static final int FOURTH                     = 23;
    58     private static final int FUNCTIONP                  = 24;
    59     private static final int IDENTITY                   = 25;
    60     private static final int KEYWORDP                   = 26;
    61     private static final int LENGTH                     = 27;
    62     private static final int LISTP                      = 28;
    63     private static final int LOWER_CASE_P               = 29;
    64     private static final int MAKE_SYMBOL                = 30;
    65     private static final int MAKUNBOUND                 = 31;
    66     private static final int NUMBERP                    = 32;
    67     private static final int ODDP                       = 33;
    68     private static final int PREDECESSOR                = 34;
    69     private static final int SECOND                     = 35;
    70     private static final int SIMPLE_BIT_VECTOR_P        = 36;
    71     private static final int SIMPLE_STRING_P            = 37;
    72     private static final int SIMPLE_VECTOR_P            = 38;
    73     private static final int SPECIAL_OPERATOR_P         = 39;
    74     private static final int STRINGP                    = 40;
    75     private static final int SUCCESSOR                  = 41;
    76     private static final int SYMBOL_FUNCTION            = 42;
    77     private static final int SYMBOL_NAME                = 43;
    78     private static final int SYMBOL_PACKAGE             = 44;
    79     private static final int SYMBOL_PLIST               = 45;
    80     private static final int SYMBOL_VALUE               = 46;
    81     private static final int THIRD                      = 47;
    82     private static final int UPPER_CASE_P               = 48;
    83     private static final int VALUES_LIST                = 49;
    84     private static final int VECTORP                    = 50;
     56    private static final int FOURTH                     = 22;
     57    private static final int FUNCTIONP                  = 23;
     58    private static final int IDENTITY                   = 24;
     59    private static final int KEYWORDP                   = 25;
     60    private static final int LENGTH                     = 26;
     61    private static final int LISTP                      = 27;
     62    private static final int LOWER_CASE_P               = 28;
     63    private static final int MAKE_SYMBOL                = 29;
     64    private static final int MAKUNBOUND                 = 30;
     65    private static final int NUMBERP                    = 31;
     66    private static final int ODDP                       = 32;
     67    private static final int PREDECESSOR                = 33;
     68    private static final int SECOND                     = 34;
     69    private static final int SIMPLE_BIT_VECTOR_P        = 35;
     70    private static final int SIMPLE_STRING_P            = 36;
     71    private static final int SIMPLE_VECTOR_P            = 37;
     72    private static final int SPECIAL_OPERATOR_P         = 38;
     73    private static final int STRINGP                    = 39;
     74    private static final int SUCCESSOR                  = 40;
     75    private static final int SYMBOL_FUNCTION            = 41;
     76    private static final int SYMBOL_NAME                = 42;
     77    private static final int SYMBOL_PACKAGE             = 43;
     78    private static final int SYMBOL_PLIST               = 44;
     79    private static final int SYMBOL_VALUE               = 45;
     80    private static final int THIRD                      = 46;
     81    private static final int UPPER_CASE_P               = 47;
     82    private static final int VALUES_LIST                = 48;
     83    private static final int VECTORP                    = 49;
    8584
    8685    // Primitive2
    87     private static final int MEMBER                     = 51;
    88     private static final int RPLACA                     = 52;
    89     private static final int RPLACD                     = 53;
    90     private static final int SET                        = 54;
     86    private static final int MEMBER                     = 50;
     87    private static final int RPLACA                     = 51;
     88    private static final int RPLACD                     = 52;
     89    private static final int SET                        = 53;
    9190
    9291    private Primitives()
     
    116115        definePrimitive1("eval", EVAL);
    117116        definePrimitive1("evenp", EVENP);
    118         definePrimitive1("fmakunbound", FMAKUNBOUND);
    119117        definePrimitive1("fourth", FOURTH);
    120118        definePrimitive1("functionp", FUNCTIONP);
     
    248246                checkSymbol(arg).setSymbolValue(null);
    249247                return arg;
    250             case FMAKUNBOUND:                   // ### fmakunbound
    251                 checkSymbol(arg).setSymbolFunction(null);
    252                 return arg;
    253248            case SYMBOL_NAME:                   // ### symbol-name
    254249                if (arg.typep(Symbol.SYMBOL) != NIL)
     
    747742            }
    748743            throw new ConditionThrowable(new TypeError(arg, "valid function name"));
     744        }
     745    };
     746
     747    // ### fmakunbound
     748    private static final Primitive1 FMAKUNBOUND = new Primitive1("fmakunbound")
     749    {
     750        public LispObject execute(LispObject arg) throws ConditionThrowable
     751        {
     752            if (arg instanceof Symbol) {
     753                ((Symbol)arg).setSymbolFunction(null);
     754            } else if (arg instanceof Cons && arg.car() == Symbol.SETF) {
     755                remprop(checkSymbol(arg.cadr()),
     756                        PACKAGE_SYS.intern("SETF-FUNCTION"));
     757            } else
     758                throw new ConditionThrowable(new TypeError(arg, "valid function name"));
     759            return arg;
     760        }
     761    };
     762
     763    // ### remprop
     764    private static final Primitive2 REMPROP = new Primitive2("remprop")
     765    {
     766        public LispObject execute(LispObject first, LispObject second)
     767            throws ConditionThrowable
     768        {
     769            return remprop(checkSymbol(first), second);
    749770        }
    750771    };
Note: See TracChangeset for help on using the changeset viewer.