Changeset 5010


Ignore:
Timestamp:
12/07/03 19:13:42 (18 years ago)
Author:
piso
Message:

Moved character functions to LispCharacter?.java.

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

Legend:

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

    r4575 r5010  
    33 *
    44 * Copyright (C) 2002-2003 Peter Graves
    5  * $Id: LispCharacter.java,v 1.30 2003-10-30 08:17:14 asimon Exp $
     5 * $Id: LispCharacter.java,v 1.31 2003-12-07 19:13:42 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    202202        }
    203203    };
     204
     205    // ### char-code
     206    private static final Primitive1 CHAR_CODE = new Primitive1("char-code")
     207    {
     208        public LispObject execute(LispObject arg) throws ConditionThrowable
     209        {
     210            return new Fixnum(getValue(arg));
     211        }
     212    };
     213
     214    // ### char-int
     215    private static final Primitive1 CHAR_INT = new Primitive1("char-int")
     216    {
     217        public LispObject execute(LispObject arg) throws ConditionThrowable
     218        {
     219            return new Fixnum(getValue(arg));
     220        }
     221    };
     222
     223    // ### code-char
     224    private static final Primitive1 CODE_CHAR = new Primitive1("code-char")
     225    {
     226        public LispObject execute(LispObject arg) throws ConditionThrowable
     227        {
     228            if (arg instanceof Fixnum) {
     229                int n = Fixnum.getValue(arg);
     230                if (n < 128)
     231                    return characters[n];
     232            }
     233            return NIL;
     234        }
     235    };
     236
     237    // ### characterp
     238    private static final Primitive1 CHARACTERP = new Primitive1("characterp")
     239    {
     240        public LispObject execute(LispObject arg) throws ConditionThrowable
     241        {
     242            return arg instanceof LispCharacter ? T : NIL;
     243        }
     244    };
     245
     246    // ### both-case-p
     247    private static final Primitive1 BOTH_CASE_P = new Primitive1("both-case-p")
     248    {
     249        public LispObject execute(LispObject arg) throws ConditionThrowable
     250        {
     251            char c = getValue(arg);
     252            if (Character.isLowerCase(c) || Character.isUpperCase(c))
     253                return T;
     254            return NIL;
     255        }
     256    };
     257
     258    // ### lower-case-p
     259    private static final Primitive1 LOWER_CASE_P = new Primitive1("lower-case-p")
     260    {
     261        public LispObject execute(LispObject arg) throws ConditionThrowable
     262        {
     263            return Character.isLowerCase(getValue(arg)) ? T : NIL;
     264        }
     265    };
     266
     267    // ### upper-case-p
     268    private static final Primitive1 UPPER_CASE_P = new Primitive1("upper-case-p")
     269    {
     270        public LispObject execute(LispObject arg) throws ConditionThrowable
     271        {
     272            return Character.isUpperCase(getValue(arg)) ? T : NIL;
     273        }
     274    };
     275
     276    // ### char-downcase
     277    private static final Primitive1 CHAR_DOWNCASE = new Primitive1("char-downcase")
     278    {
     279        public LispObject execute(LispObject arg) throws ConditionThrowable
     280        {
     281            return getInstance(Utilities.toLowerCase(getValue(arg)));
     282        }
     283    };
     284
     285    // ### char-upcase
     286    private static final Primitive1 CHAR_UPCASE = new Primitive1("char-upcase")
     287    {
     288        public LispObject execute(LispObject arg) throws ConditionThrowable
     289        {
     290            return getInstance(Utilities.toUpperCase(getValue(arg)));
     291        }
     292    };
    204293}
  • trunk/j/src/org/armedbear/lisp/Primitives.java

    r5008 r5010  
    33 *
    44 * Copyright (C) 2002-2003 Peter Graves
    5  * $Id: Primitives.java,v 1.515 2003-12-07 18:40:22 piso Exp $
     5 * $Id: Primitives.java,v 1.516 2003-12-07 19:13:27 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    4141    private static final int ARRAY_HAS_FILL_POINTER_P   = 7;
    4242    private static final int BIT_VECTOR_P               = 8;
    43     private static final int BOTH_CASE_P                = 9;
    44     private static final int CHARACTERP                 = 10;
    45     private static final int CHAR_CODE                  = 11;
    46     private static final int CHAR_DOWNCASE              = 12;
    47     private static final int CHAR_INT                   = 13;
    48     private static final int CHAR_UPCASE                = 14;
    49     private static final int CODE_CHAR                  = 15;
    50     private static final int COMPILED_FUNCTION_P        = 16;
    51     private static final int CONSP                      = 17;
    52     private static final int EVAL                       = 18;
    53     private static final int IDENTITY                   = 19;
    54     private static final int LISTP                      = 20;
    55     private static final int LOWER_CASE_P               = 21;
    56     private static final int SIMPLE_BIT_VECTOR_P        = 22;
    57     private static final int SIMPLE_VECTOR_P            = 23;
    58     private static final int UPPER_CASE_P               = 24;
    59     private static final int VECTORP                    = 25;
     43    private static final int COMPILED_FUNCTION_P        = 9;
     44    private static final int CONSP                      = 10;
     45    private static final int EVAL                       = 11;
     46    private static final int IDENTITY                   = 12;
     47    private static final int LISTP                      = 13;
     48    private static final int SIMPLE_BIT_VECTOR_P        = 14;
     49    private static final int SIMPLE_VECTOR_P            = 15;
     50    private static final int VECTORP                    = 16;
    6051
    6152    private Primitives()
     
    7061        definePrimitive1("arrayp", ARRAYP);
    7162        definePrimitive1("bit-vector-p", BIT_VECTOR_P);
    72         definePrimitive1("both-case-p", BOTH_CASE_P);
    73         definePrimitive1("char-code", CHAR_CODE);
    74         definePrimitive1("char-downcase", CHAR_DOWNCASE);
    75         definePrimitive1("char-int", CHAR_INT);
    76         definePrimitive1("char-upcase", CHAR_UPCASE);
    77         definePrimitive1("characterp", CHARACTERP);
    78         definePrimitive1("code-char", CODE_CHAR);
    7963        definePrimitive1("compiled-function-p", COMPILED_FUNCTION_P);
    8064        definePrimitive1("consp", CONSP);
     
    8266        definePrimitive1("identity", IDENTITY);
    8367        definePrimitive1("listp", LISTP);
    84         definePrimitive1("lower-case-p", LOWER_CASE_P);
    8568        definePrimitive1("simple-bit-vector-p", SIMPLE_BIT_VECTOR_P);
    8669        definePrimitive1("simple-vector-p", SIMPLE_VECTOR_P);
    87         definePrimitive1("upper-case-p", UPPER_CASE_P);
    8870        definePrimitive1("vectorp", VECTORP);
    8971    }
     
    171153            case SIMPLE_BIT_VECTOR_P:           // ### simple-bit-vector-p
    172154                return arg.typep(Symbol.SIMPLE_BIT_VECTOR);
    173             case CHAR_CODE:                     // ### char-code
    174             case CHAR_INT:                      // ### char-int
    175                 return new Fixnum(LispCharacter.getValue(arg));
    176             case CODE_CHAR:                     // ### code-char
    177                 if (arg instanceof Fixnum) {
    178                     int n = Fixnum.getValue(arg);
    179                     if (n < 128)
    180                         return LispCharacter.getInstance((char)n);
    181                 }
    182                 return NIL;
    183             case CHARACTERP:                    // ### characterp
    184                 return arg instanceof LispCharacter ? T : NIL;
    185             case BOTH_CASE_P: {                 // ### both-case-p
    186                 char c = LispCharacter.getValue(arg);
    187                 if (Character.isLowerCase(c) || Character.isUpperCase(c))
    188                     return T;
    189                 return NIL;
    190             }
    191             case LOWER_CASE_P:                  // ### lower-case-p
    192                 return Character.isLowerCase(LispCharacter.getValue(arg)) ? T : NIL;
    193             case UPPER_CASE_P:                  // ### upper-case-p
    194                 return Character.isUpperCase(LispCharacter.getValue(arg)) ? T : NIL;
    195             case CHAR_DOWNCASE:                 // ### char-downcase
    196                 return LispCharacter.getInstance(Utilities.toLowerCase(LispCharacter.getValue(arg)));
    197             case CHAR_UPCASE:                   // ### char-upcase
    198                 return LispCharacter.getInstance(Utilities.toUpperCase(LispCharacter.getValue(arg)));
    199155            case EVAL:                          // ### eval
    200156                return eval(arg, new Environment(), LispThread.currentThread());
     
    206162
    207163    // ### eq
    208     private static final Primitive2 EQ = new Primitive2("eq") {
     164    private static final Primitive2 EQ = new Primitive2("eq")
     165    {
    209166        public LispObject execute(LispObject first, LispObject second)
    210167            throws ConditionThrowable
     
    215172
    216173    // ### eql
    217     private static final Primitive2 EQL = new Primitive2("eql") {
     174    private static final Primitive2 EQL = new Primitive2("eql")
     175    {
    218176        public LispObject execute(LispObject first, LispObject second)
    219177            throws ConditionThrowable
     
    224182
    225183    // ### equal
    226     private static final Primitive2 EQUAL = new Primitive2("equal") {
     184    private static final Primitive2 EQUAL = new Primitive2("equal")
     185    {
    227186        public LispObject execute(LispObject first, LispObject second)
    228187            throws ConditionThrowable
     
    233192
    234193    // ### equalp
    235     private static final Primitive2 EQUALP = new Primitive2("equalp") {
     194    private static final Primitive2 EQUALP = new Primitive2("equalp")
     195    {
    236196        public LispObject execute(LispObject first, LispObject second)
    237197            throws ConditionThrowable
Note: See TracChangeset for help on using the changeset viewer.