Changeset 4439


Ignore:
Timestamp:
10/17/03 17:35:07 (18 years ago)
Author:
piso
Message:

readPathname()

File:
1 edited

Legend:

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

    r4424 r4439  
    33 *
    44 * Copyright (C) 2003 Peter Graves
    5  * $Id: CharacterInputStream.java,v 1.54 2003-10-17 13:11:52 piso Exp $
     5 * $Id: CharacterInputStream.java,v 1.55 2003-10-17 17:35:07 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    138138    }
    139139
    140     private LispString readString() throws ConditionThrowable
     140    private String _readString() throws ConditionThrowable
    141141    {
    142142        try {
     
    160160                sb.append(c);
    161161            }
    162             return new LispString(sb.toString());
    163         }
    164         catch (IOException e) {
    165             throw new ConditionThrowable(new StreamError(e));
    166         }
     162            return sb.toString();
     163        }
     164        catch (IOException e) {
     165            throw new ConditionThrowable(new StreamError(e));
     166        }
     167    }
     168
     169    private LispString readString() throws ConditionThrowable
     170    {
     171        return new LispString(_readString());
     172    }
     173
     174    private LispObject readPathname() throws ConditionThrowable
     175    {
     176        int n;
     177        try {
     178            n = read();
     179        }
     180        catch (IOException e) {
     181            throw new ConditionThrowable(new StreamError(e));
     182        }
     183        if (n < 0)
     184            throw new ConditionThrowable(new EndOfFileException());
     185        char nextChar = (char) n;
     186        if (nextChar == '"')
     187            return Pathname.parseNamestring(_readString());
     188        throw new ConditionThrowable(new TypeError("#p requires a string argument"));
    167189    }
    168190
     
    344366                case 'C':
    345367                    return readComplex();
     368                case 'p':
     369                case 'P':
     370                    return readPathname();
    346371                case 'x':
    347372                case 'X':
Note: See TracChangeset for help on using the changeset viewer.