mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
Add syncline support and location accessor to internal %define
interfaces. * data/bison.m4 (b4_percent_define_get_loc): New. (b4_percent_define_get_syncline): New. (b4_percent_define_flag_if): Use b4_percent_define_get_loc. (b4_percent_define_default): Record defining location as line 1 rather than 0 for the sake of synchronizing #line's, and define b4_percent_define_syncline(VARIABLE). (b4_percent_define_check_values): Use b4_percent_define_get_loc. * src/muscle_tab.c (muscle_syncline_grow): New. (muscle_code_grow): Use muscle_syncline_grow. (muscle_percent_define_insert): Use muscle_percent_define_get_loc, and define b4_percent_define_syncline(VARIABLE). (muscle_percent_define_get_loc): New. (muscle_percent_define_get_syncline): New. (muscle_percent_define_flag_if): Use muscle_percent_define_get_loc, and remove some unused variables. (muscle_percent_define_default): Record defining location as line 1 rather than 0 for the sake of synchronizing #line's, and define b4_percent_define_syncline(VARIABLE). (muscle_percent_define_check_values): Use muscle_percent_define_get_loc. * src/muscle_tab.h (muscle_percent_define_get_loc): Prototype. (muscle_percent_define_get_syncline): Prototype. * tests/skeletons.at (%define Boolean variables: invalid skeleton defaults): Update output for location change. (Complaining during macro argument expansion): Extend to test b4_percent_define_get_loc and b4_percent_define_get_syncline errors.
This commit is contained in:
@@ -159,7 +159,7 @@ start: ;
|
||||
]])
|
||||
|
||||
AT_CHECK([[bison input.y]], [[1]], [[]],
|
||||
[[[Bison:b4_percent_define_default]:0.0: invalid value for %define Boolean variable `foo'
|
||||
[[[Bison:b4_percent_define_default]:1.0: invalid value for %define Boolean variable `foo'
|
||||
]])
|
||||
|
||||
AT_CLEANUP
|
||||
@@ -216,6 +216,34 @@ AT_CHECK([[bison input2.y]], [[1]], [[]],
|
||||
[[foof.y:12.11-100.122: fatal error: foofat fubar
|
||||
]])
|
||||
|
||||
AT_DATA([[skel3.c]],
|
||||
[[b4_complain_at(b4_percent_define_get_loc([[bogus]]), [[bad value]])
|
||||
]])
|
||||
|
||||
AT_DATA([[input3.y]],
|
||||
[[%skeleton "./skel3.c"
|
||||
%%
|
||||
start: ;
|
||||
]])
|
||||
|
||||
AT_CHECK([[bison input3.y]], [[1]], [[]],
|
||||
[[input3.y: fatal error: undefined %define variable `bogus' passed to b4_percent_define_get_loc
|
||||
]])
|
||||
|
||||
AT_DATA([[skel4.c]],
|
||||
[[b4_warn_at(b4_percent_define_get_syncline([[bogus]]), [[bad value]])
|
||||
]])
|
||||
|
||||
AT_DATA([[input4.y]],
|
||||
[[%skeleton "./skel4.c"
|
||||
%%
|
||||
start: ;
|
||||
]])
|
||||
|
||||
AT_CHECK([[bison input4.y]], [[1]], [[]],
|
||||
[[input4.y: fatal error: undefined %define variable `bogus' passed to b4_percent_define_get_syncline
|
||||
]])
|
||||
|
||||
AT_CLEANUP
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user