summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Crayne <joe@jerkface.net>2019-06-12 20:20:41 -0400
committerJoe Crayne <joe@jerkface.net>2019-06-12 20:20:41 -0400
commit71c593388559e4d6963fdbbd1ed57908e7ce62ef (patch)
treef9ccb8a6fe03c4d2664854ea126fb330174a1406
parent500a6ca99eb5b878a4d79706d48f776d2bd2b450 (diff)
crayne: Support scientific notation.
-rw-r--r--src/Wavefront.hs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/Wavefront.hs b/src/Wavefront.hs
index d53c786..de9cb21 100644
--- a/src/Wavefront.hs
+++ b/src/Wavefront.hs
@@ -189,13 +189,13 @@ nextToken :: (L.ByteString -> L.ByteString) -> L.ByteString -> L.ByteString
189nextToken tok bs = tok $ L.dropWhile (not . isSpace) bs 189nextToken tok bs = tok $ L.dropWhile (not . isSpace) bs
190 190
191parseFloats tok bs cont = case L.splitAt 10 (tok bs) of 191parseFloats tok bs cont = case L.splitAt 10 (tok bs) of
192 (ds,bs') -> case F.readSigned F.readDecimal (L.toStrict ds) of 192 (ds,bs') -> case F.readSigned F.readExponential (L.toStrict ds) of
193 Just (x,b) -> parseFloats tok (reconsChunk b bs') (cont . (x :)) 193 Just (x,b) -> parseFloats tok (reconsChunk b bs') (cont . (x :))
194 Nothing -> cont [] bs 194 Nothing -> cont [] bs
195 195
196parseFloatsN 0 _ bs cont = cont [] bs 196parseFloatsN 0 _ bs cont = cont [] bs
197parseFloatsN n tok bs cont = case L.splitAt 10 (tok bs) of 197parseFloatsN n tok bs cont = case L.splitAt 10 (tok bs) of
198 (ds,bs') -> case F.readSigned F.readDecimal (L.toStrict ds) of 198 (ds,bs') -> case F.readSigned F.readExponential (L.toStrict ds) of
199 Just (x,b) -> parseFloatsN (n-1) tok (reconsChunk b bs') (cont . (x :)) 199 Just (x,b) -> parseFloatsN (n-1) tok (reconsChunk b bs') (cont . (x :))
200 Nothing -> cont [] bs 200 Nothing -> cont [] bs
201 201