Changeset 3624
- Timestamp:
- 09/08/03 17:16:28 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/j/src/org/armedbear/lisp/Primitives.java
r3617 r3624 3 3 * 4 4 * Copyright (C) 2002-2003 Peter Graves 5 * $Id: Primitives.java,v 1.37 6 2003-09-08 13:34:38 piso Exp $5 * $Id: Primitives.java,v 1.377 2003-09-08 17:16:28 piso Exp $ 6 6 * 7 7 * This program is free software; you can redistribute it and/or … … 1900 1900 } 1901 1901 AbstractVector v; 1902 if (elementType == Symbol.CHARACTER || 1903 elementType == Symbol.BASE_CHAR || 1904 elementType == Symbol.STANDARD_CHAR || 1905 elementType == Symbol.NIL) { 1902 LispObject upgradedType = 1903 getUpgradedArrayElementType(elementType); 1904 if (upgradedType == Symbol.CHARACTER) 1906 1905 v = new LispString(size); 1907 } else if (elementType == Symbol.BIT) {1906 else if (elementType == Symbol.BIT) 1908 1907 v = new BitVector(size); 1909 } else { 1910 // FIXME If elementType != null it should be a known type. 1908 else 1911 1909 v = new Vector(size); 1912 }1913 1910 if (initialElementProvided != NIL) { 1914 1911 // Initial element was specified. … … 1950 1947 } 1951 1948 }; 1949 1950 // ### upgraded-array-element-type 1951 // upgraded-array-element-type typespec &optional environment 1952 // => upgraded-typespec 1953 private static final Primitive UPGRADED_ARRAY_ELEMENT_TYPE = 1954 new Primitive("upgraded-array-element-type") { 1955 public LispObject execute(LispObject arg) throws LispError 1956 { 1957 return getUpgradedArrayElementType(arg); 1958 } 1959 public LispObject execute(LispObject first, LispObject second) 1960 throws LispError 1961 { 1962 // Ignore environment. 1963 return getUpgradedArrayElementType(first); 1964 } 1965 }; 1966 1967 private static final LispObject getUpgradedArrayElementType(LispObject type) 1968 { 1969 if (type == Symbol.CHARACTER || type == Symbol.BASE_CHAR || type == Symbol.STANDARD_CHAR) 1970 return Symbol.CHARACTER; 1971 if (type == Symbol.BIT) 1972 return Symbol.BIT; 1973 if (type == NIL) 1974 return Symbol.CHARACTER; 1975 return T; 1976 } 1952 1977 1953 1978 // ### array-rank
Note: See TracChangeset
for help on using the changeset viewer.