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
import StdString
import yard
+from AST import :: Pos(..)
:: LexItem
= LexToken Int TokenValue
(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 =