summaryrefslogtreecommitdiff
path: root/MLKReader.m
diff options
context:
space:
mode:
authorMatthias Benkard <mulk@minimulk.mst-plus>2008-07-27 09:44:01 +0200
committerMatthias Benkard <mulk@minimulk.mst-plus>2008-07-27 09:44:01 +0200
commita234e03248b1a8a97ee5f0b1d3a8f988d275cea8 (patch)
treeaa7ebafc37ced87a96855b9758310dd80c84d2fc /MLKReader.m
parent39c7ec616a22882c2b98244c7dcb39b6cd8ef122 (diff)
parentbcde0dca1696a9f9e754d52776700edc83663453 (diff)
Merge branch 'master' of http://matthias.benkard.de/code/mulklisp
Diffstat (limited to 'MLKReader.m')
-rw-r--r--MLKReader.m25
1 files changed, 25 insertions, 0 deletions
diff --git a/MLKReader.m b/MLKReader.m
index 7343c64..7db9670 100644
--- a/MLKReader.m
+++ b/MLKReader.m
@@ -45,6 +45,21 @@
recursive:(BOOL)recursive
preserveWhitespace:(BOOL)preserveWhitespace
{
+ return [self readFromStream:stream
+ eofError:eofError
+ eofValue:eofValue
+ recursive:recursive
+ preserveWhitespace:preserveWhitespace
+ singleDotMarker:nil];
+}
+
++(id) readFromStream:(MLKStream *)stream
+ eofError:(BOOL)eofError
+ eofValue:(id)eofValue
+ recursive:(BOOL)recursive
+ preserveWhitespace:(BOOL)preserveWhitespace
+ singleDotMarker:(id)dotMarker
+{
unichar ch;
NSMutableString *token;
MLKReadtable *readtable;
@@ -169,6 +184,16 @@
}
//NSLog (@"--> Interpret token: %@", token);
+
+ if ([token isEqualToString:@"."])
+ {
+ if (dotMarker)
+ return dotMarker;
+ else
+ [NSException raise:@"MLKReaderError"
+ format:@"Unexpectedly read a single dot."];
+ }
+
return [self interpretToken:token
readtable:readtable
escaped:ever_escaped];