Changeset 5006


Ignore:
Timestamp:
12/07/03 18:12:10 (18 years ago)
Author:
piso
Message:

SYMBOL-NAME, SYMBOL-PACKAGE, SYMBOL-FUNCTION, SYMBOL-PLIST => Symbol.java

Location:
trunk/j/src/org/armedbear/lisp
Files:
2 edited

Legend:

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

    r5005 r5006  
    33 *
    44 * Copyright (C) 2002-2003 Peter Graves
    5  * $Id: Primitives.java,v 1.512 2003-12-07 17:43:06 piso Exp $
     5 * $Id: Primitives.java,v 1.513 2003-12-07 18:10:41 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    5151    private static final int CONSP                      = 17;
    5252    private static final int EVAL                       = 18;
    53     private static final int IDENTITY                   = 20;
    54     private static final int KEYWORDP                   = 21;
    55     private static final int LISTP                      = 22;
    56     private static final int LOWER_CASE_P               = 23;
    57     private static final int MAKE_SYMBOL                = 24;
    58     private static final int MAKUNBOUND                 = 25;
    59     private static final int SIMPLE_BIT_VECTOR_P        = 28;
    60     private static final int SIMPLE_STRING_P            = 29;
    61     private static final int SIMPLE_VECTOR_P            = 30;
    62     private static final int STRINGP                    = 31;
    63     private static final int SYMBOL_FUNCTION            = 33;
    64     private static final int SYMBOL_NAME                = 34;
    65     private static final int SYMBOL_PACKAGE             = 35;
    66     private static final int SYMBOL_PLIST               = 36;
    67     private static final int UPPER_CASE_P               = 38;
    68     private static final int VECTORP                    = 39;
     53    private static final int IDENTITY                   = 19;
     54    private static final int KEYWORDP                   = 20;
     55    private static final int LISTP                      = 21;
     56    private static final int LOWER_CASE_P               = 22;
     57    private static final int MAKE_SYMBOL                = 23;
     58    private static final int MAKUNBOUND                 = 24;
     59    private static final int SIMPLE_BIT_VECTOR_P        = 25;
     60    private static final int SIMPLE_STRING_P            = 26;
     61    private static final int SIMPLE_VECTOR_P            = 27;
     62    private static final int STRINGP                    = 28;
     63    private static final int UPPER_CASE_P               = 29;
     64    private static final int VECTORP                    = 30;
    6965
    7066    private Primitives()
     
    9995        definePrimitive1("simple-vector-p", SIMPLE_VECTOR_P);
    10096        definePrimitive1("stringp", STRINGP);
    101         definePrimitive1("symbol-function", SYMBOL_FUNCTION);
    102         definePrimitive1("symbol-name", SYMBOL_NAME);
    103         definePrimitive1("symbol-package", SYMBOL_PACKAGE);
    104         definePrimitive1("symbol-plist", SYMBOL_PLIST);
    10597        definePrimitive1("upper-case-p", UPPER_CASE_P);
    10698        definePrimitive1("vectorp", VECTORP);
     
    182174                checkSymbol(arg).setSymbolValue(null);
    183175                return arg;
    184             case SYMBOL_NAME:                   // ### symbol-name
    185                 if (arg.typep(Symbol.SYMBOL) != NIL)
    186                     return new LispString(arg.getName());
    187                 throw new ConditionThrowable(new TypeError(arg, "symbol"));
    188             case SYMBOL_PACKAGE:                // ### symbol-package
    189                 return checkSymbol(arg).getPackage();
    190             case SYMBOL_FUNCTION: {             // ### symbol-function
    191                 LispObject function = arg.getSymbolFunction();
    192                 if (function != null)
    193                     return function;
    194                 throw new ConditionThrowable(new UndefinedFunction(arg));
    195             }
    196             case SYMBOL_PLIST:                  // ### symbol-plist
    197                 try {
    198                     return ((Symbol)arg).getPropertyList();
    199                 }
    200                 catch (ClassCastException e) {
    201                     throw new ConditionThrowable(new TypeError(arg, "symbol"));
    202                 }
    203176            case ABS:                           // ### abs
    204177                return arg.ABS();
  • trunk/j/src/org/armedbear/lisp/Symbol.java

    r4984 r5006  
    33 *
    44 * Copyright (C) 2002-2003 Peter Graves
    5  * $Id: Symbol.java,v 1.93 2003-12-06 01:24:58 piso Exp $
     5 * $Id: Symbol.java,v 1.94 2003-12-07 18:12:10 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    451451        return this == obj;
    452452    }
     453
     454    public static final Primitive1 SYMBOL_NAME = new Primitive1("symbol-name")
     455    {
     456        public LispObject execute(LispObject arg) throws ConditionThrowable
     457        {
     458            try {
     459                return new LispString(((Symbol)arg).name);
     460            }
     461            catch (ClassCastException e) {
     462                throw new ConditionThrowable(new TypeError(arg, "symbol"));
     463            }
     464        }
     465    };
     466
     467    public static final Primitive1 SYMBOL_PACKAGE = new Primitive1("symbol-package")
     468    {
     469        public LispObject execute(LispObject arg) throws ConditionThrowable
     470        {
     471            try {
     472                LispObject pkg = ((Symbol)arg).pkg;
     473                return pkg != null ? pkg : NIL;
     474            }
     475            catch (ClassCastException e) {
     476                throw new ConditionThrowable(new TypeError(arg, "symbol"));
     477            }
     478        }
     479    };
     480
     481    public static final Primitive1 SYMBOL_FUNCTION = new Primitive1("symbol-function")
     482    {
     483        public LispObject execute(LispObject arg) throws ConditionThrowable
     484        {
     485            try {
     486                LispObject function = ((Symbol)arg).function;
     487                if (function != null)
     488                    return function;
     489            }
     490            catch (ClassCastException e) {
     491                ; // Fall through.
     492            }
     493            // function == null or ClassCastException
     494            throw new ConditionThrowable(new TypeError(arg, "symbol"));
     495        }
     496    };
     497
     498    public static final Primitive1 SYMBOL_PLIST = new Primitive1("symbol-plist")
     499    {
     500        public LispObject execute(LispObject arg) throws ConditionThrowable
     501        {
     502            try {
     503                LispObject propertyList = ((Symbol)arg).propertyList;
     504                return propertyList != null ? propertyList : NIL;
     505            }
     506            catch (ClassCastException e) {
     507                throw new ConditionThrowable(new TypeError(arg, "symbol"));
     508            }
     509        }
     510    };
    453511}
Note: See TracChangeset for help on using the changeset viewer.