warnings: don't complain about m4_foo and b4_foo when from the user
commit6571c2d1b134bd04d81f1426c08985407e8c7087
authorAkim Demaille <akim.demaille@gmail.com>
Sun, 7 Nov 2021 08:27:52 +0000 (7 09:27 +0100)
committerAkim Demaille <akim.demaille@gmail.com>
Sun, 7 Nov 2021 08:52:05 +0000 (7 09:52 +0100)
treefe0328628246b1db6b2a661c6738a1940a5bfac1
parentc95d0dd5f54b98825e4cfe00a807db78a073e376
warnings: don't complain about m4_foo and b4_foo when from the user

Currently, occurrences of these identifiers in the user's input yield
spurious warnings.

To tell the difference between a legitimate m4_foo from the user, and
a bad m4_foo coming from a non-evaluated macro of a skeleton, escape
the user's identifiers as m4@'_foo.  We already use @' as a special
sequence to be stripped from the skeleton's output.

See <https://lists.gnu.org/r/bug-bison/2021-10/msg00026.html> and
previous commit ("warnings: be less picky about occurrences of m4_/b4_
in the output").

* src/flex-scanner.h (OBSTACK_SGROW): New.
* src/output.c (output_escaped): Escape m4_ and b4_.
* src/scan-code.l: Likewise.
* src/system.h (obstack_escape): Likewise.
And rewrite as a function.
* tests/skeletons.at (Suspicious sequences): Make sure the user can
use m4_foo/b4_foo without spurious warnings.
NEWS
src/flex-scanner.h
src/output.c
src/scan-code.l
src/system.h
tests/skeletons.at