From b0a6598f2470b988db0009b1af99b185b7ab07a8 Mon Sep 17 00:00:00 2001 From: Hugo Guerrier Date: Tue, 3 Sep 2024 15:20:33 +0200 Subject: [PATCH] Correct the regular expression matching rule names in annotation pragmas --- lkql_checker/doc/gnatcheck_rm/using_gnatcheck.rst | 6 ++++++ lkql_checker/src/gnatcheck-diagnoses.adb | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lkql_checker/doc/gnatcheck_rm/using_gnatcheck.rst b/lkql_checker/doc/gnatcheck_rm/using_gnatcheck.rst index 34a052f02..955823d78 100644 --- a/lkql_checker/doc/gnatcheck_rm/using_gnatcheck.rst +++ b/lkql_checker/doc/gnatcheck_rm/using_gnatcheck.rst @@ -515,6 +515,12 @@ to simplify mapping your coding standard requirements onto ... bar.ads:17:3: this is not good [My_Coding_Rule_N|Gnatcheck_Rule_N] +.. attention:: + + A custom coding rule name can be any sequence of non-whitespace characters. + Moreover, the ":" (colon) character is forbidden in those names for parsing + purposes. + .. _gnatcheck_Exit_Codes: GNATcheck Exit Codes diff --git a/lkql_checker/src/gnatcheck-diagnoses.adb b/lkql_checker/src/gnatcheck-diagnoses.adb index b1df4a959..b8af920c5 100644 --- a/lkql_checker/src/gnatcheck-diagnoses.adb +++ b/lkql_checker/src/gnatcheck-diagnoses.adb @@ -44,7 +44,7 @@ package body Gnatcheck.Diagnoses is -- Matcher for a diagnostic Match_Rule_Name : constant Pattern_Matcher := - Compile ("^""(\w+)\s*(?::\s*(.*))?""$"); + Compile ("^""([^\s:]+)\s*(?::\s*(.*))?""$"); -- Matcher for a rule name and potential arguments Match_Rule_Param : constant Pattern_Matcher :=