| 146 | } |
| 147 | |
| 148 | public static class ReaderException extends RuntimeException implements IExceptionInfo{ |
| 149 | public final int line; |
| 150 | public final int column; |
| 151 | public final Object data; |
| 152 | |
| 153 | final static public String ERR_NS = "clojure.error"; |
| 154 | final static public Keyword ERR_LINE = Keyword.intern(ERR_NS, "line"); |
| 155 | final static public Keyword ERR_COLUMN = Keyword.intern(ERR_NS, "column"); |
| 156 | |
| 157 | public ReaderException(int line, int column, Throwable cause){ |
| 158 | super(cause); |
| 159 | this.line = line; |
| 160 | this.column = column; |
| 161 | this.data = RT.map(ERR_LINE, line, ERR_COLUMN, column); |
| 162 | } |
| 163 | |
| 164 | public IPersistentMap getData(){ |
| 165 | return (IPersistentMap)data; |
| 166 | } |
| 167 | } |
| 168 | |
| 169 | static public int read1(Reader r){ |
| 170 | try |