From 3b1144988c49c1221b1c5f6b8f7544f1dea7cb44 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Tue, 27 Sep 2022 15:45:38 +0300 Subject: Show position info in error messages --- src/Tokenizer.hs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/Tokenizer.hs') diff --git a/src/Tokenizer.hs b/src/Tokenizer.hs index 64ba638..565caa5 100644 --- a/src/Tokenizer.hs +++ b/src/Tokenizer.hs @@ -12,6 +12,9 @@ data TChar = TChar { tColumn :: Int } +posTChar :: String -> TChar -> String +posTChar fileName TChar { tRow = r, tColumn = c } = fileName ++ ":" ++ show r ++ ":" ++ show c + _tokenize :: String -> [Token] -> [TChar] -> [TChar] -> LContext [Token] _tokenize fileName acc current [] = let cur = reverse current @@ -51,7 +54,7 @@ _tokenize fileName acc current (x:xs) tokenColumn = tColumn $ x, tokenFileName = fileName } in do - when (stringLength == -1) $ throwL "unbalanced string literal" + when (stringLength == -1) $ throwL (posTChar fileName x) $ "unbalanced string literal" _tokenize fileName (token : acc) [] stringDropped | tChar x `elem` [' ', '\n', '\t', '\r'] = let cur = reverse current -- cgit v1.3