]> git.rmz.io Git - my-scheme.git/commitdiff
Parse expressions (string, atom or number)
authorSamir Benmendil <me@rmz.io>
Sun, 14 Jan 2018 00:46:22 +0000 (00:46 +0000)
committerSamir Benmendil <me@rmz.io>
Sun, 14 Jan 2018 00:46:22 +0000 (00:46 +0000)
Nothing new here.

app/Main.hs

index 6daf522b2c86598881760fa72c242009d8516092..58017c55305aa90095ba786e78ed009df4209040 100644 (file)
@@ -36,8 +36,13 @@ parseAtom = do
 parseNumber :: Parser LispVal
 parseNumber = liftM (Number . read) $ many1 digit
 
+parseExpr :: Parser LispVal
+parseExpr = parseString
+        <|> parseAtom
+        <|> parseNumber
+
 readExpr :: String -> String
-readExpr input = case parse (spaces >> symbol) "lisp" input of
+readExpr input = case parse parseExpr "lisp" input of
     Left err -> "No match: " ++ show err
     Right val -> "Found value"