aboutsummaryrefslogtreecommitdiff
path: root/src/Parser.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Parser.hs')
-rw-r--r--src/Parser.hs10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/Parser.hs b/src/Parser.hs
index 94de680..6247843 100644
--- a/src/Parser.hs
+++ b/src/Parser.hs
@@ -2,11 +2,12 @@ module Parser ( parseLispValue
2 , parseString 2 , parseString
3 , parseInt 3 , parseInt
4 , parseFloat 4 , parseFloat
5 , parseComment
5 , parseId 6 , parseId
6 , parseQuote 7 , parseQuote
7 ) where 8 ) where
8 9
9import Base (Expr (..), Function) 10import Base (Expr (..))
10import Control.Applicative ((<$>)) 11import Control.Applicative ((<$>))
11import Text.ParserCombinators.Parsec 12import Text.ParserCombinators.Parsec
12 13
@@ -62,11 +63,14 @@ parseId = do
62 "#f" -> BoolLiteral False 63 "#f" -> BoolLiteral False
63 _ -> Id atom 64 _ -> Id atom
64 65
66parseComment :: Parser ()
67parseComment = char ';' >> manyTill anyChar (char '\n') >> return ()
68
65whiteSpace :: Parser () 69whiteSpace :: Parser ()
66whiteSpace = skipMany1 $ oneOf [' ', '\n'] 70whiteSpace = parseComment <|> (skipMany1 $ oneOf [' ', '\n'])
67 71
68optionalWhiteSpace :: Parser () 72optionalWhiteSpace :: Parser ()
69optionalWhiteSpace = skipMany $ oneOf [' ', '\n'] 73optionalWhiteSpace = parseComment <|> (skipMany $ oneOf [' ', '\n'])
70 74
71type Alias = String 75type Alias = String
72parseModifier :: String -> Alias -> Parser Expr 76parseModifier :: String -> Alias -> Parser Expr