deprecate %defines in favor of %header

This is consistent with --defines being deprecated in favor of
--header.  The directive %defines is also too similar to %define.
And %header matches nicely with api.header.name.

* src/scan-gram.l (%defines): Deprecate to %header.
(%header): Scan it.
* src/parse-gram.y (PERCENT_DEFINES): Replace with...
(PERCENT_HEADER): this.
* data/skeletons/lalr1.java
* doc/bison.texi
* tests/actions.at, tests/c++.at, tests/calc.at, tests/conflicts.at,
* tests/input.at, tests/java.at, tests/local.at, tests/output.at,
* tests/synclines.at, tests/types.at:
Convert most tests to check %header instead of %defines.
This commit is contained in:
Akim Demaille
2020-09-06 14:20:43 +02:00
parent 75c3746ce2
commit b327f38832
17 changed files with 185 additions and 136 deletions

View File

@@ -24,6 +24,21 @@ AT_BANNER([[Java Calculator.]])
AT_SETUP([Java invalid directives])
AT_DATA([[YYParser.y]], [
%language "Java"
%header
%destructor { /* Nothing. */ } exp
%%
exp:
])
AT_BISON_CHECK([[-fcaret YYParser.y]], [1], [],
[[YYParser.y: error: %header/%defines does not make sense in Java
YYParser.y:4.13-30: error: %destructor does not make sense in Java
4 | %destructor { /* Nothing. */ } exp
| ^~~~~~~~~~~~~~~~~~
]])
AT_DATA([[YYParser.y]], [
%language "Java"
%defines
@@ -33,7 +48,7 @@ exp:
])
AT_BISON_CHECK([[-fcaret YYParser.y]], [1], [],
[[YYParser.y: error: %defines does not make sense in Java
[[YYParser.y: error: %header/%defines does not make sense in Java
YYParser.y:4.13-30: error: %destructor does not make sense in Java
4 | %destructor { /* Nothing. */ } exp
| ^~~~~~~~~~~~~~~~~~