2 import Text.ParserCombinators.Parsec hiding (spaces)
3 import System.Environment
5 data LispVal = Atom String
7 | DottedList [LispVal] LispVal
13 symbol = oneOf "!#$%&|*+-/:<=>?@^_~"
16 spaces = skipMany space
18 parseString :: Parser LispVal
21 x <- many (noneOf "\"")
25 readExpr :: String -> String
26 readExpr input = case parse (spaces >> symbol) "lisp" input of
27 Left err -> "No match: " ++ show err
28 Right val -> "Found value"
33 putStrLn (readExpr args)