]> git.rmz.io Git - my-scheme.git/commitdiff
Using where for parsing inner characters
authorSamir Benmendil <me@rmz.io>
Sat, 20 Jan 2018 22:22:42 +0000 (22:22 +0000)
committerSamir Benmendil <me@rmz.io>
Sat, 20 Jan 2018 22:22:42 +0000 (22:22 +0000)
This should make it somewhat easier to add more parsers and support
'\"', '\n', etc

app/Main.hs

index 233fa6c9e85a81dfb98934e6624baa1391a14489..cea4c9b2f5e9f08230d49f837338d1e9cce484a7 100644 (file)
@@ -18,11 +18,11 @@ spaces :: Parser ()
 spaces = skipMany space
 
 parseString :: Parser LispVal
-parseString = do
-    char '"'
-    x <- many (noneOf "\"")
-    char '"'
-    return $ String x
+parseString = do char '"'
+                 x <- many innerChar
+                 char '"'
+                 return $ String x
+              where innerChar = noneOf "\""
 
 parseAtom :: Parser LispVal
 parseAtom = do