repositories
/
cc1516.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
345b80b
)
Changed numbertoken to Int
author
Mart Lubbers
<mart@martlubbers.net>
Wed, 24 Feb 2016 21:35:31 +0000
(22:35 +0100)
committer
Mart Lubbers
<mart@martlubbers.net>
Wed, 24 Feb 2016 21:35:31 +0000
(22:35 +0100)
lex.dcl
patch
|
blob
|
history
lex.icl
patch
|
blob
|
history
diff --git
a/lex.dcl
b/lex.dcl
index
e141b94
..
438e547
100644
(file)
--- a/
lex.dcl
+++ b/
lex.dcl
@@
-6,7
+6,7
@@
import Data.Either
:: TokenValue
//Value tokens
= IdentToken [Char] // Identifier
:: TokenValue
//Value tokens
= IdentToken [Char] // Identifier
- | NumberToken
[Char]
// Integer
+ | NumberToken
Int
// Integer
| CharToken Char // Character literal
//Keyword tokens
| VarToken // var keyword
| CharToken Char // Character literal
//Keyword tokens
| VarToken // var keyword
diff --git
a/lex.icl
b/lex.icl
index
82e6139
..
de200df
100644
(file)
--- 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]]
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
| 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)
| 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)