diff options
Diffstat (limited to 'src/Parser.hs')
-rw-r--r-- | src/Parser.hs | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/Parser.hs b/src/Parser.hs index dfc3225..48dca0e 100644 --- a/src/Parser.hs +++ b/src/Parser.hs | |||
@@ -7,7 +7,7 @@ module Parser ( parseLispValue | |||
7 | , parseComment | 7 | , parseComment |
8 | ) where | 8 | ) where |
9 | 9 | ||
10 | import Base (Expr (..), Function) | 10 | import Base (Expr (..), LispNumber(..)) |
11 | import Control.Applicative ((<$>)) | 11 | import Control.Applicative ((<$>)) |
12 | import Control.Monad (void) | 12 | import Control.Monad (void) |
13 | import Text.Parsec.Char | 13 | import Text.Parsec.Char |
@@ -34,7 +34,7 @@ parseInt :: Parser Expr | |||
34 | parseInt = do | 34 | parseInt = do |
35 | sign <- parseSign | 35 | sign <- parseSign |
36 | val <- many1 digit | 36 | val <- many1 digit |
37 | return $ (IntLiteral . read) $ maybe val (:val) sign | 37 | return $ (Number . I . read) $ maybe val (:val) sign |
38 | 38 | ||
39 | parseFloat :: Parser Expr | 39 | parseFloat :: Parser Expr |
40 | parseFloat = do | 40 | parseFloat = do |
@@ -43,7 +43,7 @@ parseFloat = do | |||
43 | char '.' | 43 | char '.' |
44 | mantissa <- many1 digit | 44 | mantissa <- many1 digit |
45 | let fval = characteristic ++ "." ++ mantissa | 45 | let fval = characteristic ++ "." ++ mantissa |
46 | return $ (FloatLiteral . read) $ maybe fval (:fval) sign | 46 | return $ (Number . F . read) $ maybe fval (:fval) sign |
47 | 47 | ||
48 | parseVector :: Parser Expr | 48 | parseVector :: Parser Expr |
49 | parseVector = do | 49 | parseVector = do |
@@ -112,6 +112,4 @@ parseLispValue = | |||
112 | optionalWhiteSpace >> char ')' | 112 | optionalWhiteSpace >> char ')' |
113 | return $ maybe (List x) (DottedList x) t | 113 | return $ maybe (List x) (DottedList x) t |
114 | <?> "lisp value"; | 114 | <?> "lisp value"; |
115 | -- try parseComment; | ||
116 | -- return pepe; | ||
117 | 115 | ||