diff options
author | Akim Demaille <akim.demaille@gmail.com> | 2021-11-06 19:24:04 +0100 |
---|---|---|
committer | Akim Demaille <akim.demaille@gmail.com> | 2021-11-06 19:30:06 +0100 |
commit | c95d0dd5f54b98825e4cfe00a807db78a073e376 (patch) | |
tree | 7db099d7f168367ece95bca3c42010df3f373331 | |
parent | 76301e739956a929ac0710fbd3d51fd4fc5ee9cf (diff) | |
download | bison-c95d0dd5f54b98825e4cfe00a807db78a073e376.tar.gz |
warnings: be less picky about occurrences of m4_/b4_ in the output
Reported by Marko Mäkelä.
<https://lists.gnu.org/r/bug-bison/2021-10/msg00026.html>
* src/scan-skel.l: It is ok to have foob4_ or foom4_.
* tests/skeletons.at (Suspicious sequences): New.
-rw-r--r-- | THANKS | 1 | ||||
-rw-r--r-- | src/scan-skel.l | 7 | ||||
-rw-r--r-- | tests/skeletons.at | 41 |
3 files changed, 47 insertions, 2 deletions
@@ -117,6 +117,7 @@ Marc Autret autret_m@epita.fr Marc Mendiola mmendiol@usc.edu Marc Schönefeld marc.schoenefeld@gmx.org Mark Boyall wolfeinstein@gmail.com +Marko Mäkelä marko.makela@iki.fi Martin Blais blais@furius.ca Martin Jacobs martin.jacobs@arcor.de Martin Mokrejs mmokrejs@natur.cuni.cz diff --git a/src/scan-skel.l b/src/scan-skel.l index 60232a2e..5a93ce03 100644 --- a/src/scan-skel.l +++ b/src/scan-skel.l @@ -54,7 +54,9 @@ static void output_mapped_file (char const *name); %} /* Identifiers of our M4 macros. */ -macro [bm]4_[a-zA-Z_0-9]* +macro [bm]4_[a-zA-Z_0-9]* +/* Safe sequence of word-constituent characters. */ +identifier [A-Za-z_0-9]+ %x SC_AT_DIRECTIVE_ARGS %x SC_AT_DIRECTIVE_SKIP_WS @@ -90,7 +92,7 @@ macro [bm]4_[a-zA-Z_0-9]* /* This pattern must not match more than the previous @ patterns. */ @[^@{}''(\n]* fail_for_invalid_at (yytext); \n out_lineno++; ECHO; -[^bm@\n]+ ECHO; +[^a-z@\n]+ ECHO; /* If there are still identifiers that look like macros, such as b4_synbol, this probably an error, say a typo in M4, or @@ -104,6 +106,7 @@ macro [bm]4_[a-zA-Z_0-9]* "suspicious sequence in the output: %s", yytext); ECHO; } +{identifier} ECHO; . ECHO; <INITIAL><<EOF>> { diff --git a/tests/skeletons.at b/tests/skeletons.at index 0ed11027..30f25a61 100644 --- a/tests/skeletons.at +++ b/tests/skeletons.at @@ -324,3 +324,44 @@ AT_BISON_CHECK([[input.y]], [[1]], [[]], ]]) AT_CLEANUP + + +## ---------------------- ## +## Suspicious sequences. ## +## ---------------------- ## + +AT_SETUP([[Suspicious sequences]]) + +AT_DATA([[skel.c]], +[[m4@&t@_include(b4_skeletonsdir/[c.m4]) +m4@&t@_divert_push(0)d@&t@nl +@output(b4_parser_file_name@)d@&t@nl +]b4_user_pre_prologue[ +]b4_user_post_prologue[ +b4_unevaluated +m4@&t@_unevaluated +]b4_epilogue[ + +m4@&t@_divert_pop(0) +]]) + +AT_DATA([[input1.y]], +[[%skeleton "./skel.c" +%{ + myb4_unevaluated + mym4_unevaluated +%} +%% +start: ; +%% +myb4_unevaluated +mym4_unevaluated +]]) + +AT_BISON_CHECK([[input1.y]], [], [], +[[input1.tab.c:10: warning: suspicious sequence in the output: b4_unevaluated [-Wother] +input1.tab.c:11: warning: suspicious sequence in the output: m4@&t@_unevaluated [-Wother] +]]) + + +AT_CLEANUP |