(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
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")