X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/6f0a6f274c8650520003b6408684a3f0bcdece5c..85bc7f546609ef28269c44945db09bf44f04015b:/data/bison.m4 diff --git a/data/bison.m4 b/data/bison.m4 index 23273ce9..9c5d48f5 100644 --- a/data/bison.m4 +++ b/data/bison.m4 @@ -2,7 +2,7 @@ # Language-independent M4 Macros for Bison. -# Copyright (C) 2002, 2004-2012 Free Software Foundation, Inc. +# Copyright (C) 2002, 2004-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 @@ -313,7 +313,7 @@ m4_define([b4_define_flag_if], # _b4_define_flag_if($1, $2, FLAG) # -------------------------------- # Work around the impossibility to define macros inside macros, -# because issuing `[$1]' is not possible in M4. GNU M4 should provide +# because issuing '[$1]' is not possible in M4. GNU M4 should provide # $$1 a la M5/TeX. m4_define([_b4_define_flag_if], [m4_if([$1$2], $[1]$[2], [], @@ -425,9 +425,9 @@ m4_define([b4_symbol_action], b4_symbol_if([$1], [has_type], [m4_dquote(b4_symbol([$1], [type]))]), [(*yylocationp)])dnl - b4_symbol_case_([$1])[]dnl + b4_symbol_case_([$1])[]dnl b4_syncline([b4_symbol([$1], [$2_line])], ["b4_symbol([$1], [$2_file])"]) - b4_symbol([$1], [$2]) + b4_symbol([$1], [$2]) b4_syncline([@oline@], [@ofile@]) break; @@ -446,7 +446,7 @@ m4_define([b4_symbol_printer], [b4_symbol_action([$1], [printer])]) # --------------------------- # Issue a "case NUM" for SYMBOL-NUM. m4_define([b4_symbol_case_], -[ case b4_symbol([$1], [number]): // b4_symbol([$1], [tag]) +[case b4_symbol([$1], [number]): b4_symbol_tag_comment([$1])]) ]) @@ -509,7 +509,7 @@ m4_define([b4_token_format], # TAG, TYPE). m4_define([b4_type_action_], [b4_symbol_if([$1], [has_type], -[m4_map([b4_symbol_case_], [$@])[]dnl +[m4_map([ b4_symbol_case_], [$@])[]dnl b4_dollar_dollar([b4_symbol([$1], [number])], [b4_symbol([$1], [tag])], [b4_symbol([$1], [type])]); @@ -541,11 +541,21 @@ m4_define([b4_basename], # ----------------------- m4_define([b4_syncline], [b4_flag_if([synclines], -[b4_sync_end([__line__], [b4_basename(m4_quote(__file__))]) -b4_sync_start([$1], [$2])])]) +[b4_sync_start([$1], [$2]) b4_sync_end([__line__], + [b4_basename(m4_quote(__file__))])[]dnl +])]) + +# b4_sync_start(LINE, FILE) +# ----------------------- +# Syncline for the new place. Typically a directive for the compiler. +m4_define([b4_sync_start], [b4_comment([$2:$1])]) + +# b4_sync_end(LINE, FILE) +# ----------------------- +# Syncline for the current place, which ends. Typically a comment +# left for the reader. +m4_define([b4_sync_end], [b4_comment([$2:$1])]) -m4_define([b4_sync_end], [b4_comment([Line $1 of $2])]) -m4_define([b4_sync_start], [b4_comment([Line $1 of $2])]) # b4_user_code(USER-CODE) # ----------------------- @@ -567,14 +577,14 @@ m4_define([b4_define_user_code], # b4_user_initial_action # b4_user_post_prologue # b4_user_pre_prologue -# b4_user_stype +# b4_user_union_members # ---------------------- # Macros that issue user code, ending with synclines. b4_define_user_code([actions]) b4_define_user_code([initial_action]) b4_define_user_code([post_prologue]) b4_define_user_code([pre_prologue]) -b4_define_user_code([stype]) +b4_define_user_code([union_members]) # b4_check_user_names(WHAT, USER-LIST, BISON-NAMESPACE) @@ -762,8 +772,8 @@ m4_define([b4_percent_define_default], # b4_percent_define_if_define(NAME, [VARIABLE = NAME]) # ---------------------------------------------------- # Define b4_NAME_if that executes its $1 or $2 depending whether -# VARIABLE was %defined. The characters `.' and `-' in VARIABLE are mapped -# to `_'. +# VARIABLE was %defined. The characters '.' and `-' in VARIABLE are mapped +# to '_'. m4_define([b4_percent_define_if_define_], [m4_define(m4_bpatsubst([b4_$1_if], [[-.]], [_]), [b4_percent_define_flag_if(m4_default([$2], [$1]),