Changeset 5889


Ignore:
Timestamp:
02/22/04 15:58:47 (17 years ago)
Author:
piso
Message:

Moved Lisp functions from LispString?.java to StringFunctions?.java.

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

Legend:

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

    r5839 r5889  
    33 *
    44 * Copyright (C) 2003-2004 Peter Graves
    5  * $Id: Autoload.java,v 1.159 2004-02-15 18:47:23 piso Exp $
     5 * $Id: Autoload.java,v 1.160 2004-02-22 15:58:47 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    218218        autoload("broadcast-stream-streams", "BroadcastStream");
    219219        autoload("cell-error-name", "cell_error_name");
     220        autoload("char", "StringFunctions");
    220221        autoload("char-equal", "CharacterFunctions");
    221222        autoload("char-greaterp", "CharacterFunctions");
     
    297298        autoload("rename-package", "PackageFunctions");
    298299        autoload("room", "room");
     300        autoload("schar", "StringFunctions");
    299301        autoload("shadow", "PackageFunctions");
    300302        autoload("shadowing-import", "PackageFunctions");
     303        autoload("simple-string-p", "StringFunctions");
    301304        autoload("sin", "MathFunctions");
    302305        autoload("sinh", "MathFunctions");
     
    304307        autoload("stream-element-type", "stream_element_type");
    305308        autoload("stream-external-format", "stream_external_format");
     309        autoload("stringp", "StringFunctions");
    306310        autoload("sxhash", "HashTable");
    307311        autoload("synonym-stream-symbol", "SynonymStream");
     
    318322        autoload(PACKAGE_EXT, "gc", "gc", true);
    319323        autoload(PACKAGE_EXT, "probe-directory", "probe_file", true);
     324        autoload(PACKAGE_EXT, "simple-string-fill", "StringFunctions");
     325        autoload(PACKAGE_EXT, "simple-string-search", "StringFunctions");
    320326        autoload(PACKAGE_EXT, "string-input-stream-current", "StringInputStream", true);
    321         autoload(PACKAGE_JAVA, "%load-java-class-from-byte-array", "RuntimeClass");
     327        autoload(PACKAGE_EXT, "string-position", "StringFunctions");
    322328        autoload(PACKAGE_JAVA, "%jnew-proxy", "JProxy");
    323329        autoload(PACKAGE_JAVA, "%jnew-runtime-class", "RuntimeClass");
    324330        autoload(PACKAGE_JAVA, "%jredefine-method", "RuntimeClass");
    325331        autoload(PACKAGE_JAVA, "%jregister-handler", "JHandler");
     332        autoload(PACKAGE_JAVA, "%load-java-class-from-byte-array", "RuntimeClass");
    326333        autoload(PACKAGE_PROF, "%start-profiler", "Profiler", true);
    327334        autoload(PACKAGE_PROF, "stop-profiler", "Profiler", true);
     
    331338        autoload(PACKAGE_SYS, "%make-condition", "make_condition");
    332339        autoload(PACKAGE_SYS, "%make-hash-table", "HashTable");
     340        autoload(PACKAGE_SYS, "%make-string", "StringFunctions");
    333341        autoload(PACKAGE_SYS, "%make-string-output-stream", "StringOutputStream");
    334342        autoload(PACKAGE_SYS, "%make-structure", "StructureObject");
     
    338346        autoload(PACKAGE_SYS, "%run-shell-command", "ShellCommand");
    339347        autoload(PACKAGE_SYS, "%set-arglist", "arglist");
     348        autoload(PACKAGE_SYS, "%set-char", "StringFunctions");
    340349        autoload(PACKAGE_SYS, "%set-class-direct-slots", "SlotClass");
    341350        autoload(PACKAGE_SYS, "%set-class-slots", "SlotClass");
     
    343352        autoload(PACKAGE_SYS, "%set-instance-ref", "StandardObject");
    344353        autoload(PACKAGE_SYS, "%set-logical-pathname-translations", "LogicalPathname");
     354        autoload(PACKAGE_SYS, "%set-schar", "StringFunctions");
    345355        autoload(PACKAGE_SYS, "%string-capitalize", "StringFunctions");
    346356        autoload(PACKAGE_SYS, "%string-downcase", "StringFunctions");
  • trunk/j/src/org/armedbear/lisp/StringFunctions.java

    r5827 r5889  
    33 *
    44 * Copyright (C) 2003-2004 Peter Graves
    5  * $Id: StringFunctions.java,v 1.16 2004-02-14 18:58:02 piso Exp $
     5 * $Id: StringFunctions.java,v 1.17 2004-02-22 15:58:27 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    754754        }
    755755    };
     756
     757    // ### string-p
     758    public static final Primitive1 STRINGP = new Primitive1("stringp", "object")
     759    {
     760        public LispObject execute(LispObject arg) throws ConditionThrowable
     761        {
     762            // Displaced arrays might be strings.
     763            return arg.STRINGP();
     764        }
     765    };
     766
     767    // ### simple-string-p
     768    public static final Primitive1 SIMPLE_STRING_P =
     769        new Primitive1("simple-string-p", "object")
     770    {
     771        public LispObject execute(LispObject arg) throws ConditionThrowable
     772        {
     773            return arg.SIMPLE_STRING_P();
     774        }
     775    };
     776
     777    // ### %make-string
     778    // %make-string size initial-element element-type => string
     779    // Returns a simple string.
     780    private static final Primitive3 _MAKE_STRING =
     781        new Primitive3("%make-string", PACKAGE_SYS, false)
     782    {
     783        public LispObject execute(LispObject size, LispObject initialElement,
     784                                  LispObject elementType) throws ConditionThrowable
     785        {
     786            final int n = Fixnum.getValue(size);
     787            final int limit =
     788                Fixnum.getValue(Symbol.ARRAY_DIMENSION_LIMIT.getSymbolValue());
     789            if (n < 0 || n >= limit) {
     790                StringBuffer sb = new StringBuffer();
     791                sb.append("the size specified for this string (");
     792                sb.append(n);
     793                sb.append(')');
     794                if (n >= limit) {
     795                    sb.append(" is >= ARRAY-DIMENSION-LIMIT (");
     796                    sb.append(limit);
     797                    sb.append(')');
     798                } else
     799                    sb.append(" is negative");
     800                return signal(new LispError(sb.toString()));
     801            }
     802            // Ignore elementType.
     803            LispString string = new LispString(n);
     804            if (initialElement != NIL) {
     805                // Initial element was specified.
     806                char c = checkCharacter(initialElement).getValue();
     807                string.fill(c);
     808            }
     809            return string;
     810        }
     811    };
     812
     813    // ### char
     814    private static final Primitive2 CHAR = new Primitive2("char", "string index")
     815    {
     816        public LispObject execute(LispObject first, LispObject second)
     817            throws ConditionThrowable
     818        {
     819            if (first.stringp())
     820                return ((AbstractArray)first).getRowMajor(Fixnum.getInt(second));
     821            return signal(new TypeError(first, Symbol.STRING));
     822        }
     823    };
     824
     825    // ### %set-char
     826    private static final Primitive3 _SET_CHAR =
     827        new Primitive3("%set-char", PACKAGE_SYS, false)
     828    {
     829        public LispObject execute(LispObject first, LispObject second,
     830                                  LispObject third) throws ConditionThrowable
     831        {
     832            if (first.stringp()) {
     833                ((AbstractArray)first).setRowMajor(Fixnum.getInt(second),
     834                                                   checkCharacter(third));
     835                return third;
     836            }
     837            return signal(new TypeError(first, Symbol.STRING));
     838        }
     839    };
     840
     841    // ### schar
     842    private static final Primitive2 SCHAR = new Primitive2("schar", "string index")
     843    {
     844        public LispObject execute(LispObject first, LispObject second)
     845            throws ConditionThrowable
     846        {
     847            return checkString(first).get(Fixnum.getInt(second));
     848        }
     849    };
     850
     851    // ### %set-schar
     852    private static final Primitive3 _SET_SCHAR =
     853        new Primitive3("%set-schar", PACKAGE_SYS, false)
     854    {
     855        public LispObject execute(LispObject first, LispObject second,
     856                                  LispObject third) throws ConditionThrowable
     857        {
     858            checkString(first).set(Fixnum.getInt(second), checkCharacter(third));
     859            return third;
     860        }
     861    };
     862
     863    // ### string-position
     864    private static final Primitive3 STRING_POSITION =
     865        new Primitive3("string-position", PACKAGE_EXT, true)
     866    {
     867        public LispObject execute(LispObject first, LispObject second,
     868                                  LispObject third)
     869            throws ConditionThrowable
     870        {
     871            char c = LispCharacter.getValue(first);
     872            LispString string = checkString(second);
     873            int start = Fixnum.getValue(third);
     874            char[] chars = string.chars();
     875            for (int i = start, limit = chars.length; i < limit; i++) {
     876                if (chars[i] == c)
     877                    return number(i);
     878            }
     879            return NIL;
     880        }
     881    };
     882
     883    // ### simple-string-search pattern string => position
     884    // Searches string for a substring that matches pattern.
     885    private static final Primitive2 SIMPLE_STRING_SEARCH =
     886        new Primitive2("simple-string-search", PACKAGE_EXT, true)
     887    {
     888        public LispObject execute(LispObject first, LispObject second)
     889            throws ConditionThrowable
     890        {
     891            int index = LispString.getValue(second).indexOf(LispString.getValue(first));
     892            return index >= 0 ? new Fixnum(index) : NIL;
     893        }
     894    };
     895
     896    // ### simple-string-fill string character => string
     897    private static final Primitive2 STRING_FILL =
     898        new Primitive2("simple-string-fill", PACKAGE_EXT, true)
     899    {
     900        public LispObject execute(LispObject first, LispObject second)
     901            throws ConditionThrowable
     902        {
     903            checkString(first).fill(LispCharacter.getValue(second));
     904            return first;
     905        }
     906    };
    756907}
Note: See TracChangeset for help on using the changeset viewer.