Changeset 3629


Ignore:
Timestamp:
09/08/03 18:05:27 (20 years ago)
Author:
piso
Message:

Work in progress.

File:
1 edited

Legend:

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

    r3627 r3629  
    33 *
    44 * Copyright (C) 2003 Peter Graves
    5  * $Id: Type.java,v 1.18 2003-09-08 17:41:49 piso Exp $
     5 * $Id: Type.java,v 1.19 2003-09-08 18:05:27 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    110110    }
    111111
    112     public final boolean _isSubtypeOf(Type otherType)
     112    public boolean _isSubtypeOf(Type otherType)
    113113    {
    114114        if (otherType == this)
     
    138138    public static final Type TYPE_T    = new Type(Symbol.T);
    139139
     140    public static final Type TYPE_NIL  = new Type((Symbol)NIL) {
     141        public boolean _isSubtypeOf(Type otherType)
     142        {
     143            return true;
     144        }
     145    };
     146
    140147    public static final Type ATOM      = new Type(Symbol.ATOM, TYPE_T);
    141     public static final Type SYMBOL    = new Type(Symbol.SYMBOL, TYPE_T);
     148    public static final Type SYMBOL    = new Type(Symbol.SYMBOL, TYPE_T, ATOM);
    142149    public static final Type SEQUENCE  = new Type(Symbol.SEQUENCE, TYPE_T);
    143150    public static final Type ARRAY     = new Type(Symbol.ARRAY, TYPE_T);
    144     public static final Type CHARACTER = new Type(Symbol.CHARACTER, TYPE_T);
    145     public static final Type NUMBER    = new Type(Symbol.NUMBER, TYPE_T);
     151    public static final Type CHARACTER = new Type(Symbol.CHARACTER, TYPE_T, ATOM);
     152    public static final Type NUMBER    = new Type(Symbol.NUMBER, TYPE_T, ATOM);
    146153    public static final Type STREAM    = new Type(Symbol.STREAM, TYPE_T);
    147154    public static final Type CONDITION = new Type(Symbol.CONDITION, TYPE_T);
     155    public static final Type FUNCTION  = new Type(Symbol.FUNCTION, TYPE_T);
     156    public static final Type STANDARD_OBJECT =
     157        new Type(Symbol.STANDARD_OBJECT, TYPE_T);
    148158
    149159    // Subtypes of SYMBOL
    150160    public static final Type BOOLEAN   = new Type(Symbol.BOOLEAN, SYMBOL);
    151     public static final Type KEYWORD   = new Type(Symbol.KEYWORD, SYMBOL, ATOM);
     161    public static final Type KEYWORD   = new Type(Symbol.KEYWORD, SYMBOL);
    152162
    153163    // Subtypes of SEQUENCE
     
    180190    public static final Type BASE_CHAR = new Type(Symbol.BASE_CHAR, CHARACTER);
    181191    public static final Type EXTENDED_CHAR =
    182         new Type(Symbol.EXTENDED_CHAR, CHARACTER);
     192        new Type(Symbol.EXTENDED_CHAR, CHARACTER, TYPE_NIL);
    183193    public static final Type STANDARD_CHAR =
    184194        new Type(Symbol.STANDARD_CHAR, BASE_CHAR);
Note: See TracChangeset for help on using the changeset viewer.