]> git.rmz.io Git - my-scheme.git/commitdiff
Add various escape chars
authorSamir Benmendil <me@rmz.io>
Sat, 20 Jan 2018 22:41:50 +0000 (22:41 +0000)
committerSamir Benmendil <me@rmz.io>
Sat, 20 Jan 2018 22:41:50 +0000 (22:41 +0000)
app/Main.hs

index 0c0d29c7a4acf3351624522b2e96080c4b4c1fc5..533d260b5c65528c845334d06ab704f5093fe9de 100644 (file)
@@ -24,8 +24,14 @@ parseString = do char '"'
                  return $ String x
               where innerChar = noneOf ['\\', '\"'] <|> escapeChar
                     escapeChar = do char '\\'
-                                    c <- oneOf "\""
-                                    return $ '\"'
+                                    c <- oneOf ['\"', '\\', 'n', 'r', 't', 'f']
+                                    return $ case c of
+                                                '\"' -> '\"'
+                                                '\\' -> '\\'
+                                                'n'  -> '\n'
+                                                'r'  -> '\r'
+                                                't'  -> '\t'
+                                                'f'  -> '\f'
 
 parseAtom :: Parser LispVal
 parseAtom = do