From e2f044ec4a0ba4804b87a1683b23eeab97436346 Mon Sep 17 00:00:00 2001 From: Henner Zeller Date: Wed, 18 Sep 2019 11:38:13 -0700 Subject: [PATCH] Place :: first in an error message This is the same as most compilers (e.g. gcc and clang) but also verilog tools (e.g. yosys) output error mesasge in a standardized form. This form can immediately be parsed by IDE tools that can jumping through a list of error messages, placing the cursor at the given file position. This change simply re-arranges the error message printing to conform to that standard. Signed-off-by: Henner Zeller --- src/Language/SystemVerilog/Parser/Lex.x | 2 +- src/Language/SystemVerilog/Parser/Parse.y | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Language/SystemVerilog/Parser/Lex.x b/src/Language/SystemVerilog/Parser/Lex.x index 4d72be9..e490af8 100644 --- a/src/Language/SystemVerilog/Parser/Lex.x +++ b/src/Language/SystemVerilog/Parser/Lex.x @@ -541,7 +541,7 @@ lexicalError :: String -> Alex a lexicalError msg = do (pn, _, _, _) <- alexGetInput pos <- toTokPos pn - alexError $ "Lexical error: " ++ msg ++ ", at " ++ show pos + alexError $ show pos ++ ": Lexical error: " ++ msg -- get the current user state get :: Alex AlexUserState diff --git a/src/Language/SystemVerilog/Parser/Parse.y b/src/Language/SystemVerilog/Parser/Parse.y index 57747fc..520e2ca 100644 --- a/src/Language/SystemVerilog/Parser/Parse.y +++ b/src/Language/SystemVerilog/Parser/Parse.y @@ -1207,7 +1207,7 @@ DimFn :: { DimFn } parseError :: [Token] -> ExceptT String IO a parseError a = case a of [] -> throwError $ "Parse error: no tokens left to parse." - Token t s p : _ -> throwError $ "Parse error: unexpected token '" ++ s ++ "' (" ++ show t ++ ") at " ++ show p ++ "." + Token t s p : _ -> throwError $ show p ++ ": Parse error: unexpected token '" ++ s ++ "' (" ++ show t ++ ")." genItemsToGenItem :: [GenItem] -> GenItem genItemsToGenItem [x] = x