better lexer
authorMart Lubbers <mart@martlubbers.net>
Tue, 1 Mar 2016 15:41:54 +0000 (16:41 +0100)
committerMart Lubbers <mart@martlubbers.net>
Tue, 1 Mar 2016 15:41:54 +0000 (16:41 +0100)
src/lex.icl

index 1828e37..ac5168f 100644 (file)
@@ -15,8 +15,8 @@ lexer r = case runParser lexProgram r of
        (Left e, _) = Left $ toString e
 
 lexProgram :: Parser Char [Token]
-lexProgram = some lexToken <* eof
-       >>= \ts->pure $ (map (\t->(0, 0, t)) (catMaybes ts))
+lexProgram = catMaybes <$> some lexToken <* eof
+       >>= \ts->pure $ (map (\t->(0, 0, t)) ts)
 
 lexToken :: Parser Char (Maybe TokenValue)
 lexToken =