From 9f180f91e531266f419ee3fc407d5dfcb10c7960 Mon Sep 17 00:00:00 2001 From: Zachary Snow Date: Mon, 27 Jan 2020 19:23:36 -0500 Subject: [PATCH] improve `line error message --- src/Language/SystemVerilog/Parser/Lex.x | 5 ++++- src/Language/SystemVerilog/Parser/Tokens.hs | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Language/SystemVerilog/Parser/Lex.x b/src/Language/SystemVerilog/Parser/Lex.x index e5bc6d4..5eccb21 100644 --- a/src/Language/SystemVerilog/Parser/Lex.x +++ b/src/Language/SystemVerilog/Parser/Lex.x @@ -1002,7 +1002,10 @@ handleDirective (posOrig, _, _, strOrig) len = do let Just line = readMaybe lineStr :: Maybe Int let Just level = readMaybe levelStr :: Maybe Int return (line, filename, level) - _ -> lexicalError $ "unexpected tokens following `begin_keywords: " ++ show toks + _ -> lexicalError $ + "unexpected tokens types following `line: " + ++ show (map tokenName toks) ++ "; should be: " + ++ show [Lit_number, Lit_string, Lit_number] let filename = init $ tail quotedFilename setCurrentFile filename (AlexPn f _ c, prev, _, str) <- alexGetInput diff --git a/src/Language/SystemVerilog/Parser/Tokens.hs b/src/Language/SystemVerilog/Parser/Tokens.hs index 48e86a8..7582b0c 100644 --- a/src/Language/SystemVerilog/Parser/Tokens.hs +++ b/src/Language/SystemVerilog/Parser/Tokens.hs @@ -10,6 +10,7 @@ module Language.SystemVerilog.Parser.Tokens , TokenName (..) , Position (..) , tokenString + , tokenName ) where import Text.Printf @@ -17,6 +18,9 @@ import Text.Printf tokenString :: Token -> String tokenString (Token _ s _) = s +tokenName :: Token -> TokenName +tokenName (Token kw _ _) = kw + data Position = Position String Int Int deriving Eq