]> git.saurik.com Git - bison.git/blobdiff - data/bison.m4
style: fix comments
[bison.git] / data / bison.m4
index 26ef5c62d3ac371045cde454b0d5fcc8bd551f7c..9c5d48f54862abe59eba1aeaa0fd8d63950b4ffc 100644 (file)
@@ -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
@@ -250,30 +250,30 @@ m4_define([b4_integral_parser_tables_map],
 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
-positive, shift that token.  If negative, reduce the rule which
+   [[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.]])
 ])
 
 
@@ -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], [],
@@ -341,6 +341,33 @@ b4_define_flag_if([yacc])               # Whether POSIX Yacc is emulated.
 # macro per (token, field), where field can has_id, id, etc.: see
 # src/output.c:prepare_symbols_definitions().
 #
+# The various FIELDS are:
+#
+# - has_id: 0 or 1.
+#   Whether the symbol has an id.
+# - id: string
+#   If has_id, the id.  Guaranteed to be usable as a C identifier.
+# - tag: string.
+#   A representat of the symbol.  Can be 'foo', 'foo.id', '"foo"' etc.
+# - user_number: integer
+#   The assigned (external) number as used by yylex.
+# - is_token: 0 or 1
+#   Whether this is a terminal symbol.
+# - number: integer
+#   The internalized number (used after yytranslate).
+# - has_type: 0, 1
+#   Whether has a semantic value.
+# - type
+#   If it has a semantic value, its type tag, or, if variant are used,
+#   its type.
+# - has_printer: 0, 1
+# - printer: string
+# - printer_file: string
+# - printer_line: integer
+#   If the symbol has a printer, everything about it.
+# - has_destructor, destructor, destructor_file, destructor_line
+#   Likewise.
+#
 # The following macros provide access to these values.
 
 # b4_symbol_(NUM, FIELD)
@@ -354,7 +381,7 @@ m4_define([b4_symbol_],
 # b4_symbol(NUM, FIELD)
 # ---------------------
 # Recover a FIELD about symbol #NUM.  Thanks to m4_indir, fails if
-# undefined.  If FIELD = id, prepend the prefix.
+# undefined.  If FIELD = id, prepend the token prefix.
 m4_define([b4_symbol],
 [m4_case([$2],
          [id],    [m4_do([b4_percent_define_get([api.token.prefix])],
@@ -373,6 +400,14 @@ m4_define([b4_symbol_if],
          [m4_fatal([$0: field $2 of $1 is not a Boolean:] b4_symbol([$1], [$2]))])])
 
 
+# b4_symbol_tag_comment(SYMBOL-NUM)
+# ---------------------------------
+# Issue a comment giving the tag of symbol NUM.
+m4_define([b4_symbol_tag_comment],
+[b4_comment([b4_symbol([$1], [tag])])
+])
+
+
 # b4_symbol_action_location(SYMBOL-NUM, KIND)
 # -------------------------------------------
 # Report the location of the KIND action as FILE:LINE.
@@ -390,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;
 
@@ -411,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])])
 ])
 
 
@@ -469,9 +504,12 @@ m4_define([b4_token_format],
 # ---------------------
 # Run actions for the symbol NUMS that all have the same type-name.
 # Skip NUMS that have no type-name.
+#
+# To specify the action to run, define b4_dollar_dollar(NUMBER,
+# 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])]);
@@ -503,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)
 # -----------------------
@@ -529,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)
@@ -724,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]),