the EOF error changed to more informative lexer error msg

This commit is contained in:
aarne
2006-08-28 19:36:41 +00:00
parent c9b4a28ebb
commit 66d3c75031
2 changed files with 6 additions and 2 deletions

View File

@@ -121,7 +121,7 @@ tokens str = go (alexStartPos, '\n', str)
go inp@(pos, _, str) =
case alexScan inp 0 of
AlexEOF -> []
AlexError (pos, _, _) -> fail $ show pos ++ ": lexical error"
AlexError (pos, _, _) -> [Err pos]
AlexSkip inp' len -> go inp'
AlexToken inp' len act -> act pos (take len str) : (go inp')

View File

@@ -3133,7 +3133,11 @@ thenM = (>>=)
happyError :: [Token] -> Err a
happyError ts =
Bad $ "syntax error at " ++ tokenPos ts ++ if null ts then [] else (" before " ++ unwords (map prToken (take 4 ts)))
Bad $ "syntax error at " ++ tokenPos ts ++
case ts of
[] -> []
[Err _] -> " due to lexer error"
_ -> (" before " ++ unwords (map prToken (take 4 ts)))
myLexer = tokens
{-# LINE 1 "GenericTemplate.hs" #-}