Changeset 12600


Ignore:
Timestamp:
04/10/10 21:10:28 (11 years ago)
Author:
ehuelsmann
Message:

Consolidate faslReadRadix with readRadix.

Location:
trunk/abcl/src/org/armedbear/lisp
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/FaslReader.java

    r12597 r12600  
    304304
    305305        {
    306             return stream.faslReadRadix(2);
     306            return stream.readRadix(2, Stream.faslReadtable);
    307307        }
    308308    };
     
    330330
    331331        {
    332             return stream.faslReadRadix(8);
     332            return stream.readRadix(8, Stream.faslReadtable);
    333333        }
    334334    };
     
    356356
    357357        {
    358             return stream.faslReadRadix(n);
     358            return stream.readRadix(n, Stream.faslReadtable);
    359359        }
    360360    };
     
    382382
    383383        {
    384             return stream.faslReadRadix(16);
     384            return stream.readRadix(16, Stream.faslReadtable);
    385385        }
    386386    };
  • trunk/abcl/src/org/armedbear/lisp/LispReader.java

    r12597 r12600  
    335335
    336336        {
    337             return stream.readRadix(2);
     337            return stream.readRadix(2, Stream.currentReadtable);
    338338        }
    339339    };
     
    361361
    362362        {
    363             return stream.readRadix(8);
     363            return stream.readRadix(8, Stream.currentReadtable);
    364364        }
    365365    };
     
    387387
    388388        {
    389             return stream.readRadix(n);
     389            return stream.readRadix(n, Stream.currentReadtable);
    390390        }
    391391    };
     
    413413
    414414        {
    415             return stream.readRadix(16);
     415            return stream.readRadix(16, Stream.currentReadtable);
    416416        }
    417417    };
  • trunk/abcl/src/org/armedbear/lisp/Stream.java

    r12597 r12600  
    12441244    }
    12451245
    1246     public LispObject readRadix(int radix) {
     1246    public LispObject readRadix(int radix, ReadtableAccessor rta) {
    12471247        StringBuilder sb = new StringBuilder();
    12481248        final LispThread thread = LispThread.currentThread();
    1249         final Readtable rt =
    1250             (Readtable) Symbol.CURRENT_READTABLE.symbolValue(thread);
     1249        final Readtable rt = rta.rt(thread);
    12511250        boolean escaped = (_readToken(sb, rt) != null);
    12521251        if (Symbol.READ_SUPPRESS.symbolValue(thread) != NIL)
     
    12611260        if (s.charAt(0) == '+')
    12621261            s = s.substring(1);
    1263         try {
    1264             int n = Integer.parseInt(s, radix);
    1265             return (n >= 0 && n <= 255) ? Fixnum.constants[n] : Fixnum.getInstance(n);
    1266         } catch (NumberFormatException e) {}
    1267         // parseInt() failed.
    1268         try {
    1269             return Bignum.getInstance(s, radix);
    1270         } catch (NumberFormatException e) {}
    1271         // Not a number.
    1272         return error(new LispError());
    1273     }
    1274 
    1275     public LispObject faslReadRadix(int radix) {
    1276         StringBuilder sb = new StringBuilder();
    1277         final LispThread thread = LispThread.currentThread();
    1278         final Readtable rt = FaslReadtable.getInstance();
    1279         boolean escaped = (_readToken(sb, rt) != null);
    1280         if (Symbol.READ_SUPPRESS.symbolValue(thread) != NIL)
    1281             return NIL;
    1282         if (escaped)
    1283             return error(new ReaderError("Illegal syntax for number.", this));
    1284         String s = sb.toString();
    1285         if (s.indexOf('/') >= 0)
    1286             return makeRatio(s, radix);
    12871262        try {
    12881263            int n = Integer.parseInt(s, radix);
Note: See TracChangeset for help on using the changeset viewer.