X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/68f91d58f15abe21c65a8b4d7022ccb854c857dc..89ff1b5e71a6d8aa34b3578282528adb43b198cd:/data/c-like.m4?ds=sidebyside diff --git a/data/c-like.m4 b/data/c-like.m4 index 4ee310da..eb06de2a 100644 --- a/data/c-like.m4 +++ b/data/c-like.m4 @@ -17,16 +17,37 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +# b4_comment_(TEXT, OPEN, CONTINUE, END) +# -------------------------------------- +# Put TEXT in comment. Avoid trailing spaces: don't indent empty lines. +# Avoid adding indentation to the first line, as the indentation comes +# from OPEN. That's why we don't patsubst([$1], [^\(.\)], [ \1]). +# +# Prefix all the output lines with PREFIX. +m4_define([b4_comment_], +[$2[]m4_bpatsubst(m4_expand([[$1]]), [ +\(.\)], [ +$3\1])$4]) + + +# b4_comment(TEXT, [PREFIX]) +# -------------------------- +# Put TEXT in comment. Prefix all the output lines with PREFIX. +m4_define([b4_comment], +[b4_comment_([$1], [$2/* ], [$2 ], [ */])]) + + + + # b4_dollar_dollar_(VALUE, FIELD, DEFAULT-FIELD) # ---------------------------------------------- # If FIELD (or DEFAULT-FIELD) is non-null, return "VALUE.FIELD", # otherwise just VALUE. Be sure to pass "(VALUE)" is VALUE is a # pointer. m4_define([b4_dollar_dollar_], -[m4_if([$2], [[]], - [m4_ifval([$3], [($1.$3)], - [$1])], - [($1.$2)])]) +[b4_symbol_value([$1], + m4_if([$2], [[]], + [[$3]], [[$2]]))]) # b4_dollar_pushdef(VALUE-POINTER, DEFAULT-FIELD, LOCATION) # b4_dollar_popdef