X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=lex.icl;h=de200df2f4dcd62930ea1e74bf20f97fb7b9872a;hb=4766205e7035a58c8a1fa1557b6e14577ed26f32;hp=82e61393b9b9b1e7ac266e02c1e68b7723bb4e46;hpb=345b80b49413bb1b52735fb155faded41456a6b7;p=cc1516.git diff --git a/lex.icl b/lex.icl index 82e6139..de200df 100644 --- a/lex.icl +++ b/lex.icl @@ -65,14 +65,16 @@ lex ['\'':'\\':x:'\'':xs] = case get x EscapeMap of Just t = ret (CharToken t) xs _ = err ("Unknown escape: \\" +++ toString x) lex ['-':t=:[x:xs]] -| isDigit x = let (n, r) = span isDigit t in ret (NumberToken ['-':n]) r +| isDigit x = let (n, r) = span isDigit t in + ret (NumberToken (toInt $ toString ['-':n])) r | otherwise = ret DashToken xs lex t=:[x:xs] = case get x SingleCharTokens of (Just tok) = ret tok xs Nothing | x == '\n' = \i.lex xs (i+1) | isSpace x = lex xs - | isDigit x = let (v, r) = span isDigit t in ret (NumberToken v) r + | isDigit x = let (v, r) = span isDigit t in + ret (NumberToken (toInt $ toString v)) r | isAlpha x = let (v, r) = span isIdent t in ret (IdentToken v) r with isIdent c = isAlphanum c || c == '_' | otherwise = err ("Unexpected character: " +++ toString x)