X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=lex.icl;h=ce642a1a76c0a0cb61d639d7a73ec96ef0bbdb52;hb=f297ddf3ea579fcafe3111510b385da1ba150a89;hp=21a29e92a03aefbd7f7189c8795501dbfb963215;hpb=39628afef1b12a7481a720d4de46d9aab76fd0f9;p=cc1516.git diff --git a/lex.icl b/lex.icl index 21a29e9..ce642a1 100644 --- a/lex.icl +++ b/lex.icl @@ -1,7 +1,7 @@ implementation module lex import Control.Monad, Control.Applicative -import Data.Either, Data.Func +import Data.Either, Data.Func, Data.Void from StdFunc import o import StdBool import StdList @@ -9,6 +9,7 @@ import StdChar import StdString import yard +from AST import :: Pos(..) :: LexItem = LexToken Int TokenValue @@ -30,7 +31,7 @@ lexProgram line column = lexToken >>= \t->case t of (LexItemError e) = fail PositionalError line column ("LexerError: " +++ e) (LexToken c t) = lexProgram line (column+c) - >>= \rest->pure [{line=line, column=column, token=t}:rest] + >>= \rest->pure [({line=line,col=column}, t):rest] lexToken :: Parser Char LexItem lexToken =