# 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
STATE-NUM.]])
$1([defact], [b4_defact],
- [[YYDEFACT[S] -- default reduction number in state S. Performed when
-YYTABLE does not specify something else to do. Zero means the default
-is an error.]])
+ [[YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+Performed when YYTABLE does not specify something else to do. Zero
+means the default is an error.]])
$1([pgoto], [b4_pgoto], [[YYPGOTO[NTERM-NUM].]])
$1([defgoto], [b4_defgoto], [[YYDEFGOTO[NTERM-NUM].]])
$1([table], [b4_table],
- [[YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
+ [[YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule whose
number is the opposite. If YYTABLE_NINF, syntax error.]])
$1([check], [b4_check])
$1([stos], [b4_stos],
- [[STOS_[STATE-NUM] -- The (internal number of the) accessing
+ [[YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM.]])
$1([r1], [b4_r1],
[[YYR1[YYN] -- Symbol number of symbol that rule YYN derives.]])
$1([r2], [b4_r2],
- [[YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.]])
+ [[YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.]])
])
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;
# ---------------------------
# 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])])
])
# 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])]);
# -----------------------
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)
# -----------------------