]> git.rmz.io Git - my-scheme.git/blobdiff - app/Main.hs
Parse Strings surrounded by `"`
[my-scheme.git] / app / Main.hs
index 852089135df8fa8b9ccef54f9699d95bc41d8df2..22de7480421b03aaa552b541b8266a4a9bd41135 100644 (file)
@@ -2,12 +2,26 @@ module Main where
 import Text.ParserCombinators.Parsec hiding (spaces)
 import System.Environment
 
+data LispVal = Atom String
+             | List [LispVal]
+             | DottedList [LispVal] LispVal
+             | Number Integer
+             | String String
+             | Bool Bool
+
 symbol :: Parser Char
 symbol = oneOf "!#$%&|*+-/:<=>?@^_~"
 
 spaces :: Parser ()
 spaces = skipMany space
 
+parseString :: Parser LispVal
+parseString = do
+    char '"'
+    x <- many (noneOf "\"")
+    char '"'
+    return $ String x
+
 readExpr :: String -> String
 readExpr input = case parse (spaces >> symbol) "lisp" input of
     Left err -> "No match: " ++ show err