mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
Compute at M4 time some of the subtractions.
* data/lalr1.cc (b4_substract): New. (b4_rhs_data): Use it.
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
2008-11-13 Akim Demaille <demaille@gostai.com>
|
||||
|
||||
Compute at M4 time some of the subtractions.
|
||||
* data/lalr1.cc (b4_substract): New.
|
||||
(b4_rhs_data): Use it.
|
||||
|
||||
2008-11-13 Akim Demaille <demaille@gostai.com>
|
||||
|
||||
symbol::token.
|
||||
|
||||
@@ -18,6 +18,15 @@
|
||||
|
||||
m4_include(b4_pkgdatadir/[c++.m4])
|
||||
|
||||
# b4_subtract(LHS, RHS)
|
||||
# ---------------------
|
||||
# Evaluate LHS - RHS if they are integer literals, otherwise expand
|
||||
# to (LHS) - (RHS).
|
||||
m4_define([b4_subtract],
|
||||
[m4_bmatch([$1$2], [^[0123456789]*$],
|
||||
[m4_eval([$1 - $2])],
|
||||
[($1) - ($2)])])
|
||||
|
||||
|
||||
# b4_args(ARG1, ...)
|
||||
# _b4_args(ARG1, ...)
|
||||
@@ -107,7 +116,7 @@ m4_define([b4_lhs_location],
|
||||
# Return the data corresponding to the symbol #NUM, where the current
|
||||
# rule has RULE-LENGTH symbols on RHS.
|
||||
m4_define([b4_rhs_data],
|
||||
[yystack_@{($1) - ($2)@}])
|
||||
[yystack_@{b4_subtract($@)@}])
|
||||
|
||||
|
||||
# b4_rhs_state(RULE-LENGTH, NUM)
|
||||
|
||||
Reference in New Issue
Block a user