From ca1c83c21c967593dfa4fced6084e83361bc6cf3 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Sat, 26 Jul 2008 11:48:01 +0200 Subject: Reader: Support the consing dot. --- MLKReader.m | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'MLKReader.m') diff --git a/MLKReader.m b/MLKReader.m index 7343c64..7db9670 100644 --- a/MLKReader.m +++ b/MLKReader.m @@ -44,6 +44,21 @@ eofValue:(id)eofValue 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; @@ -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]; -- cgit v1.2.3