Changeset 4907


Ignore:
Timestamp:
11/28/03 06:08:06 (18 years ago)
Author:
piso
Message:

RPLACA, RPLACD

File:
1 edited

Legend:

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

    r4905 r4907  
    33 *
    44 * Copyright (C) 2002-2003 Peter Graves
    5  * $Id: Primitives.java,v 1.506 2003-11-28 06:00:24 piso Exp $
     5 * $Id: Primitives.java,v 1.507 2003-11-28 06:08:06 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    7676    private static final int VECTORP                    = 42;
    7777
    78     // Primitive2
    79     private static final int RPLACA                     = 43;
    80     private static final int RPLACD                     = 44;
    81 
    8278    private Primitives()
    8379    {
     
    125121        definePrimitive1("upper-case-p", UPPER_CASE_P);
    126122        definePrimitive1("vectorp", VECTORP);
    127 
    128         definePrimitive2("rplaca", RPLACA);
    129         definePrimitive2("rplacd", RPLACD);
    130123    }
    131124
     
    296289    }
    297290
    298     // Primitive2
    299     public LispObject dispatch(LispObject first, LispObject second, int index)
    300         throws ConditionThrowable
    301     {
    302         switch (index) {
    303             case RPLACA:                        // ### rplaca
    304                 first.setCar(second);
    305                 return first;
    306             case RPLACD:                        // ### rplacd
    307                 first.setCdr(second);
    308                 return first;
    309             default:
    310                 Debug.trace("bad index " + index);
    311                 throw new ConditionThrowable(new WrongNumberOfArgumentsException((String)null));
    312         }
    313     }
    314 
    315291    // ### eq
    316292    private static final Primitive2 EQ = new Primitive2("eq") {
     
    558534            symbol.setSymbolValue(second);
    559535            return second;
     536        }
     537    };
     538
     539    // ### rplaca
     540    private static final Primitive2 RPLACA = new Primitive2("rplaca")
     541    {
     542        public LispObject execute(LispObject first, LispObject second)
     543            throws ConditionThrowable
     544        {
     545                first.setCar(second);
     546                return first;
     547        }
     548    };
     549
     550    // ### rplacd
     551    private static final Primitive2 RPLACD = new Primitive2("rplacd")
     552    {
     553        public LispObject execute(LispObject first, LispObject second)
     554            throws ConditionThrowable
     555        {
     556                first.setCdr(second);
     557                return first;
    560558        }
    561559    };
Note: See TracChangeset for help on using the changeset viewer.