X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/cd735a8c6caab8f705fe551cc0316d0292eef11d..fd003416d59cae9645d164b12495eb186efee848:/data/c-like.m4?ds=sidebyside diff --git a/data/c-like.m4 b/data/c-like.m4 index c2abce7e..eb06de2a 100644 --- a/data/c-like.m4 +++ b/data/c-like.m4 @@ -2,7 +2,7 @@ # Common code for C-like languages (C, C++, Java, etc.) -# Copyright (C) 2012 Free Software Foundation, Inc. +# Copyright (C) 2012-2013 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -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