hoig
[cc1516.git] / src / lex.icl
index 1828e37..a797b1c 100644 (file)
@@ -15,9 +15,11 @@ 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)
 
+//Of hier een record van maken
+//lexToken :: Parser Char (Maybe (Int, Int, Int, TokenValue))
 lexToken :: Parser Char (Maybe TokenValue)
 lexToken = 
     //Comments
@@ -72,4 +74,4 @@ lexToken =
                lexEscape = fromJust <$> ((
                        lexOp "a" (toChar 7) <|> lexOp "b" '\b' <|> lexOp "f" '\f' <|>
                        lexOp "n" '\n' <|> lexOp "r" '\t' <|> lexOp "v" '\v' <|>
-                       lexOp "'" '\'') <?> ("Unknown escape", 0))
+                       lexOp "'" '\'') <?> LexError "Unknown escape")