X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=src%2Flex.icl;h=a797b1c4ee410ac3095c46bf5e68f5655c7c47cd;hb=0f1c66df34b0f65709756b070884c33b94e6a9ba;hp=1828e37133ddcc053fba5a764f309799c3477ae6;hpb=3952a068daa6e70d73f7ae9b3b68548289bbef99;p=cc1516.git diff --git a/src/lex.icl b/src/lex.icl index 1828e37..a797b1c 100644 --- a/src/lex.icl +++ b/src/lex.icl @@ -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")