summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChouser <chouser@n01se.net>2010-01-27 11:00:08 -0500
committerChouser <chouser@n01se.net>2010-10-02 15:28:00 -0400
commita5c2c36cd7f8ddbae68a5071ae7a3d9373b02a01 (patch)
tree01d6e73fe3955fb288d95a6d268da3cca36ffe4b
parent167a73857a746e8dbeeb6d9ea8f99083aca7dc69 (diff)
Add "starting at <line>" to readDelimitedList EOF errors
Refs #249 Signed-off-by: Chouser <chouser@n01se.net>
-rw-r--r--src/jvm/clojure/lang/LispReader.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/jvm/clojure/lang/LispReader.java b/src/jvm/clojure/lang/LispReader.java
index 9589472f..91a854e7 100644
--- a/src/jvm/clojure/lang/LispReader.java
+++ b/src/jvm/clojure/lang/LispReader.java
@@ -1048,6 +1048,10 @@ public static class UnreadableReader extends AFn{
}
public static List readDelimitedList(char delim, PushbackReader r, boolean isRecursive) throws Exception{
+ final int firstline =
+ (r instanceof LineNumberingPushbackReader) ?
+ ((LineNumberingPushbackReader) r).getLineNumber() : -1;
+
ArrayList a = new ArrayList();
for(; ;)
@@ -1058,7 +1062,12 @@ public static List readDelimitedList(char delim, PushbackReader r, boolean isRec
ch = r.read();
if(ch == -1)
- throw new Exception("EOF while reading");
+ {
+ if(firstline < 0)
+ throw new Exception("EOF while reading");
+ else
+ throw new Exception("EOF while reading, starting at line " + firstline);
+ }
if(ch == delim)
break;