X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=lex.dcl;h=438e547ff461789dae49b6ea436e125c59ce95f0;hb=75ac4a13efdc20b444a5eb6cb2d16425c82d333e;hp=d6c421cf3425d5d78c02fed30c598528e2e9845a;hpb=98144e50ff2ca8e8d89dd1a39d4f2a41c2c6dab6;p=cc1516.git diff --git a/lex.dcl b/lex.dcl index d6c421c..438e547 100644 --- a/lex.dcl +++ b/lex.dcl @@ -2,10 +2,11 @@ definition module lex import Data.Either -:: Token +:: Token :== (Int, TokenValue) +:: TokenValue //Value tokens = IdentToken [Char] // Identifier - | NumberToken [Char]// Integer + | NumberToken Int // Integer | CharToken Char // Character literal //Keyword tokens | VarToken // var keyword @@ -21,6 +22,7 @@ import Data.Either | BoolTypeToken // Bool keyword //Two character tokens | DoubleColonToken // :: + | NotEqualToken // != | LesserEqToken // <= | GreaterEqToken // >= | EqualsToken // == @@ -52,6 +54,4 @@ import Data.Either :: LexerOutput :== Either String [Token] -instance toString LexerOutput - lexer :: [Char] -> LexerOutput