X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=lex.dcl;h=f52404780343ecb6605a40735cafff7d71e967e6;hb=550c1b695234a87dda89e5509e0b07ba9156997d;hp=e78d495a938dfe2fe934934f3a2bc168333f4329;hpb=6b3981fb80952fe2c510b6f9b849adb0dff77d2c;p=cc1516.git diff --git a/lex.dcl b/lex.dcl index e78d495..f524047 100644 --- a/lex.dcl +++ b/lex.dcl @@ -2,16 +2,15 @@ definition module lex from Data.Either import :: Either from yard import :: Error +from AST import :: Pos -:: Token = { - line :: Int, - column :: Int, - token :: TokenValue} +:: Token :== (Pos, TokenValue) :: TokenValue //Value tokens = IdentToken String // Identifier | NumberToken Int // Integer | CharToken Char // Character literal + | StringToken [Char]// String literal //Keyword tokens | VarToken // var keyword | ReturnToken // return keyword @@ -24,6 +23,7 @@ from yard import :: Error | IntTypeToken // Int keyword | CharTypeToken // Char keyword | BoolTypeToken // Bool keyword + | LetToken // Let keyword //Two character tokens | DoubleColonToken // :: | NotEqualToken // != @@ -54,8 +54,7 @@ from yard import :: Error | LesserToken // < | BiggerToken // > | ExclamationToken // ! - //Special tokens - | EndOfFileToken // EOF + | BackslashToken // \ :: LexerOutput :== Either Error [Token]