bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

style: rename user_token_number as code


From: Akim Demaille
Subject: style: rename user_token_number as code
Date: Sat, 23 May 2020 08:47:57 +0200

commit e7aff571223ee73dd0281a94c510f0196817a8fa
Author: Akim Demaille <address@hidden>
Date:   Fri May 22 20:12:03 2020 +0200

    style: rename user_token_number as code
    
    This should have been done in 3.6, but I wanted to avoid introducing
    conflicts into Vincent's work on counterexamples.  It turns out it's
    completely orthogonal.
    
    * data/README.md, data/skeletons/bison.m4, data/skeletons/c++.m4,
    * data/skeletons/c.m4, data/skeletons/glr.c, data/skeletons/java.m4,
    * data/skeletons/lalr1.d, data/skeletons/lalr1.java,
    * data/skeletons/variant.hh, data/skeletons/yacc.c, src/conflicts.c,
    * src/derives.c, src/gram.c, src/gram.h, src/output.c,
    * src/parse-gram.c, src/parse-gram.y, src/print-xml.c, src/print.c,
    * src/reader.c, src/symtab.c, src/symtab.h, tests/input.at,
    * tests/types.at:
    s/user_token_number/code/g.
    Plus minor changes.

diff --git a/TODO b/TODO
index c4ae11c9..96459653 100644
--- a/TODO
+++ b/TODO
@@ -58,12 +58,6 @@ Stop hard-coding "Calc".  Adjust local.at (look for FIXME).
 See https://github.com/akimd/bison/pull/15.
 
 ** Clean up
-Rename user_token_number for tokens as "code".  It's not a "user number",
-it's the token code, and the user can control it, but this code always
-exists.
-
-See also USER_NUMBER_UNDEFINED and NUMBER_UNDEFINED.
-
 Rename endtoken as eoftoken.
 
 Also do it in data/skeletons.
diff --git a/data/README.md b/data/README.md
index 5d32b75f..9d0b0c50 100644
--- a/data/README.md
+++ b/data/README.md
@@ -95,11 +95,11 @@ The macro `b4_symbol(NUM, FIELD)` gives access to the 
following FIELDS:
 - `tag`: string
   A human representation of the symbol.  Can be 'foo', 'foo.id', '"foo"' etc.
 
-- `user_number`: integer
-  The code associated to the `id`.
+- `code`: integer
+  The token code associated to the `id`.
   The external number as used by yylex.  Can be ASCII code when a character,
-  some number chosen by bison, or some user number in the case of
-  %token FOO <NUM>.  Corresponds to yychar in yacc.c.
+  some number chosen by bison, or some user number in the case of `%token
+  FOO <NUM>`.  Corresponds to `yychar` in `yacc.c`.
 
 - `is_token`: 0 or 1
   Whether this is a terminal symbol.
diff --git a/data/skeletons/bison.m4 b/data/skeletons/bison.m4
index 637d2fcb..8618c3f8 100644
--- a/data/skeletons/bison.m4
+++ b/data/skeletons/bison.m4
@@ -586,7 +586,7 @@ m4_define([b4_token_format],
 [b4_token_visible_if([$2],
 [m4_format([[$1]],
            m4_expand(b4_symbol([$2], [id])),
-           m4_expand(b4_symbol([$2], b4_api_token_raw_if([[number]], 
[[user_number]]))))])])
+           m4_expand(b4_symbol([$2], b4_api_token_raw_if([[number]], 
[[code]]))))])])
 
 
 # b4_last_enum_token
diff --git a/data/skeletons/c++.m4 b/data/skeletons/c++.m4
index b862bf3c..91518033 100644
--- a/data/skeletons/c++.m4
+++ b/data/skeletons/c++.m4
@@ -594,11 +594,11 @@ m4_define([b4_yytranslate_define],
     {
   ]b4_translate[
     };
-    const int user_token_number_max_ = ]b4_user_token_number_max[;
+    const int code_max_ = ]b4_code_max[;
 
     if (t <= 0)
       return symbol_kind::]b4_symbol_prefix[YYEOF;
-    else if (t <= user_token_number_max_)
+    else if (t <= code_max_)
       return YY_CAST (symbol_kind_type, translate_table[t]);
     else
       return symbol_kind::]b4_symbol_prefix[YYUNDEF;]])[
diff --git a/data/skeletons/c.m4 b/data/skeletons/c.m4
index 3b00fbf6..5e7530fb 100644
--- a/data/skeletons/c.m4
+++ b/data/skeletons/c.m4
@@ -523,7 +523,7 @@ m4_define([b4_token_enum],
     [m4_format([    %-30s %s],
                m4_format([[%s = %s%s%s]],
                          b4_symbol([$1], [id]),
-                         b4_symbol([$1], b4_api_token_raw_if([[number]], 
[[user_number]])),
+                         b4_symbol([$1], b4_api_token_raw_if([[number]], 
[[code]])),
                          m4_if([$1], b4_last_enum_token, [], [[,]])),
                [b4_symbol_tag_comment([$1])])])])
 
diff --git a/data/skeletons/glr.c b/data/skeletons/glr.c
index c5074a3e..9a03fb2c 100644
--- a/data/skeletons/glr.c
+++ b/data/skeletons/glr.c
@@ -332,7 +332,7 @@ static YYLTYPE yyloc_default][]b4_yyloc_default;])[
 #define YYMAXLEFT ]b4_max_left_semantic_context[
 
 /* YYMAXUTOK -- Last valid token number (for yychar).  */
-#define YYMAXUTOK   ]b4_user_token_number_max[
+#define YYMAXUTOK   ]b4_code_max[
 
 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
    as returned by yylex, with out-of-bounds checking.  */
diff --git a/data/skeletons/java.m4 b/data/skeletons/java.m4
index 0b09579c..106f4721 100644
--- a/data/skeletons/java.m4
+++ b/data/skeletons/java.m4
@@ -143,7 +143,7 @@ m4_define([b4_token_enum],
 ]],
                b4_symbol([$1], [tag]),
                b4_symbol([$1], [id]),
-               b4_symbol([$1], b4_api_token_raw_if([[number]], 
[[user_number]])))])])
+               b4_symbol([$1], b4_api_token_raw_if([[number]], [[code]])))])])
 
 
 # b4_token_enums
diff --git a/data/skeletons/lalr1.d b/data/skeletons/lalr1.d
index 430dfc78..bc1bcf0a 100644
--- a/data/skeletons/lalr1.d
+++ b/data/skeletons/lalr1.d
@@ -841,11 +841,11 @@ m4_popdef([b4_at_dollar])])dnl
   ]b4_translate[
     @};
 
-    immutable int user_token_number_max_ = ]b4_user_token_number_max[;
+    immutable int code_max_ = ]b4_code_max[;
 
     if (t <= 0)
       return SymbolKind.]b4_symbol_prefix[YYEOF;
-    else if (t <= user_token_number_max_)
+    else if (t <= code_max_)
       {
         import std.conv : to;
         return to!SymbolKind (translate_table[t]);
diff --git a/data/skeletons/lalr1.java b/data/skeletons/lalr1.java
index ce29a3f3..307cfa6c 100644
--- a/data/skeletons/lalr1.java
+++ b/data/skeletons/lalr1.java
@@ -1085,10 +1085,10 @@ b4_dollar_popdef[]dnl
   }
 ]],
 [[  {
-    int user_token_number_max_ = ]b4_user_token_number_max[;
+    int code_max_ = ]b4_code_max[;
     if (t <= 0)
       return SymbolKind.]b4_symbol_prefix[YYEOF;
-    else if (t <= user_token_number_max_)
+    else if (t <= code_max_)
       return SymbolKind.get (yytranslate_table_[t]);
     else
       return SymbolKind.]b4_symbol_prefix[YYUNDEF;
diff --git a/data/skeletons/variant.hh b/data/skeletons/variant.hh
index b594af38..c37bdd42 100644
--- a/data/skeletons/variant.hh
+++ b/data/skeletons/variant.hh
@@ -392,7 +392,7 @@ m4_define([_b4_type_clause],
 [b4_symbol_if([$1], [is_token],
               [b4_symbol_if([$1], [has_id],
                             [tok == token::b4_symbol([$1], [id])],
-                            [tok == b4_symbol([$1], [user_number])])])])
+                            [tok == b4_symbol([$1], [code])])])])
 
 
 # _b4_token_constructor_define(SYMBOL-NUM...)
diff --git a/data/skeletons/yacc.c b/data/skeletons/yacc.c
index a9f15c8d..8efb0a50 100644
--- a/data/skeletons/yacc.c
+++ b/data/skeletons/yacc.c
@@ -592,7 +592,7 @@ union yyalloc
 /* YYNSTATES -- Number of states.  */
 #define YYNSTATES  ]b4_states_number[
 
-#define YYMAXUTOK   ]b4_user_token_number_max[
+#define YYMAXUTOK   ]b4_code_max[
 
 
 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
diff --git a/src/conflicts.c b/src/conflicts.c
index f007e204..63b07d47 100644
--- a/src/conflicts.c
+++ b/src/conflicts.c
@@ -710,13 +710,13 @@ rule_conflicts_print (void)
             complain (&r->location, complaint,
                       _("shift/reduce conflicts for rule %d:"
                         " %d found, %d expected"),
-                      r->user_number, sr, expected_sr);
+                      r->code, sr, expected_sr);
           int rr = count_rule_rr_conflicts (r);
           if (rr != expected_rr && (rr != 0 || expected_rr != -1))
             complain (&r->location, complaint,
                       _("reduce/reduce conflicts for rule %d:"
                         " %d found, %d expected"),
-                      r->user_number, rr, expected_rr);
+                      r->code, rr, expected_rr);
         }
     }
   if (warning_is_enabled (Wcounterexample))
diff --git a/src/derives.c b/src/derives.c
index c859a5e2..178c0855 100644
--- a/src/derives.c
+++ b/src/derives.c
@@ -47,7 +47,7 @@ print_derives (void)
       fprintf (stderr, "  %s derives\n", symbols[i]->tag);
       for (rule **rp = derives[i - ntokens]; *rp; ++rp)
         {
-          fprintf (stderr, "    %3d ", (*rp)->user_number);
+          fprintf (stderr, "    %3d ", (*rp)->code);
           rule_rhs_print (*rp, stderr);
           fprintf (stderr, "\n");
         }
diff --git a/src/gram.c b/src/gram.c
index 6202b82a..18f1b5e3 100644
--- a/src/gram.c
+++ b/src/gram.c
@@ -44,7 +44,7 @@ int nvars = 0;
 
 symbol_number *token_translations = NULL;
 
-int max_user_token_number = 256;
+int max_code = 256;
 
 int required_version = 0;
 
diff --git a/src/gram.h b/src/gram.h
index afae95a7..22a4e2e9 100644
--- a/src/gram.h
+++ b/src/gram.h
@@ -173,7 +173,7 @@ typedef struct
 {
   /* The number of the rule in the source.  It is usually the index in
      RULES too, except if there are useless rules.  */
-  rule_number user_number;
+  rule_number code;
 
   /* The index in RULES.  Usually the rule number in the source,
      except if some rules are useless.  */
@@ -262,7 +262,7 @@ extern symbol **symbols;
    by the user's yylex routine, it yields the internal token number
    used by the parser and throughout bison.  */
 extern symbol_number *token_translations;
-extern int max_user_token_number;
+extern int max_code;
 
 
 
diff --git a/src/output.c b/src/output.c
index d5e97b6b..8e3bb38c 100644
--- a/src/output.c
+++ b/src/output.c
@@ -274,12 +274,12 @@ prepare_symbols (void)
   MUSCLE_INSERT_INT ("tokens_number", ntokens);
   MUSCLE_INSERT_INT ("nterms_number", nvars);
   MUSCLE_INSERT_INT ("symbols_number", nsyms);
-  MUSCLE_INSERT_INT ("user_token_number_max", max_user_token_number);
+  MUSCLE_INSERT_INT ("code_max", max_code);
 
   muscle_insert_symbol_number_table ("translate",
                                      token_translations,
                                      token_translations[0],
-                                     1, max_user_token_number + 1);
+                                     1, max_code + 1);
 
   /* tname -- token names.  */
   prepare_symbol_names ("tname");
@@ -309,7 +309,7 @@ prepare_symbols (void)
   {
     int *values = xnmalloc (ntokens, sizeof *values);
     for (int i = 0; i < ntokens; ++i)
-      values[i] = symbols[i]->content->user_token_number;
+      values[i] = symbols[i]->content->code;
     muscle_insert_int_table ("toknum", values,
                              values[0], 1, ntokens);
     free (values);
@@ -565,8 +565,8 @@ prepare_symbol_definitions (void)
       SET_KEY ("tag");
       MUSCLE_INSERT_STRING (key, symbol_tag (sym));
 
-      SET_KEY ("user_number");
-      MUSCLE_INSERT_INT (key, sym->content->user_token_number);
+      SET_KEY ("code");
+      MUSCLE_INSERT_INT (key, sym->content->code);
 
       SET_KEY ("is_token");
       MUSCLE_INSERT_INT (key, i < ntokens);
diff --git a/src/parse-gram.c b/src/parse-gram.c
index 212e95d5..af978d4f 100644
--- a/src/parse-gram.c
+++ b/src/parse-gram.c
@@ -2367,7 +2367,7 @@ yyreduce:
       (yyval.token_decl) = (yyvsp[-2].id);
       symbol_class_set ((yyvsp[-2].id), current_class, (yylsp[-2]), true);
       if (0 <= (yyvsp[-1].yykind_82))
-        symbol_user_token_number_set ((yyvsp[-2].id), (yyvsp[-1].yykind_82), 
(yylsp[-1]));
+        symbol_code_set ((yyvsp[-2].id), (yyvsp[-1].yykind_82), (yylsp[-1]));
       if ((yyvsp[0].alias))
         symbol_make_alias ((yyvsp[-2].id), (yyvsp[0].alias), (yylsp[0]));
     }
@@ -2424,7 +2424,7 @@ yyreduce:
       (yyval.token_decl_for_prec) = (yyvsp[-1].id);
       symbol_class_set ((yyvsp[-1].id), token_sym, (yylsp[-1]), false);
       if (0 <= (yyvsp[0].yykind_82))
-        symbol_user_token_number_set ((yyvsp[-1].id), (yyvsp[0].yykind_82), 
(yylsp[0]));
+        symbol_code_set ((yyvsp[-1].id), (yyvsp[0].yykind_82), (yylsp[0]));
     }
     break;
 
@@ -2573,7 +2573,7 @@ yyreduce:
         }
       (yyval.id) = symbol_get (char_name ((yyvsp[0].CHAR)), (yylsp[0]));
       symbol_class_set ((yyval.id), token_sym, (yylsp[0]), false);
-      symbol_user_token_number_set ((yyval.id), (yyvsp[0].CHAR), (yylsp[0]));
+      symbol_code_set ((yyval.id), (yyvsp[0].CHAR), (yylsp[0]));
     }
     break;
 
diff --git a/src/parse-gram.y b/src/parse-gram.y
index d09f49a7..980bc4f5 100644
--- a/src/parse-gram.y
+++ b/src/parse-gram.y
@@ -531,7 +531,7 @@ token_decl:
       $$ = $id;
       symbol_class_set ($id, current_class, @id, true);
       if (0 <= $num)
-        symbol_user_token_number_set ($id, $num, @num);
+        symbol_code_set ($id, $num, @num);
       if ($alias)
         symbol_make_alias ($id, $alias, @alias);
     }
@@ -593,7 +593,7 @@ token_decl_for_prec:
       $$ = $id;
       symbol_class_set ($id, token_sym, @id, false);
       if (0 <= $num)
-        symbol_user_token_number_set ($id, $num, @num);
+        symbol_code_set ($id, $num, @num);
     }
 | string_as_id
 ;
@@ -763,7 +763,7 @@ id:
         }
       $$ = symbol_get (char_name ($1), @1);
       symbol_class_set ($$, token_sym, @1, false);
-      symbol_user_token_number_set ($$, $1, @1);
+      symbol_code_set ($$, $1, @1);
     }
 ;
 
diff --git a/src/print-xml.c b/src/print-xml.c
index 61fb93b4..a44af211 100644
--- a/src/print-xml.c
+++ b/src/print-xml.c
@@ -379,7 +379,7 @@ print_grammar (FILE *out, int level)
 
   /* Terminals */
   xml_puts (out, level + 1, "<terminals>");
-  for (symbol_number i = 0; i < max_user_token_number + 1; i++)
+  for (int i = 0; i < max_code + 1; i++)
     if (token_translations[i] != undeftoken->content->number)
       {
         char const *tag = symbols[token_translations[i]]->tag;
diff --git a/src/print.c b/src/print.c
index 259c16b3..720740ee 100644
--- a/src/print.c
+++ b/src/print.c
@@ -362,7 +362,7 @@ print_terminal_symbols (FILE *out)
 {
   /* TERMINAL (type #) : rule #s terminal is on RHS */
   fprintf (out, "%s\n\n", _("Terminals, with rules where they appear"));
-  for (symbol_number i = 0; i < max_user_token_number + 1; i++)
+  for (int i = 0; i < max_code + 1; ++i)
     if (token_translations[i] != undeftoken->content->number)
       {
         const char *tag = symbols[token_translations[i]]->tag;
@@ -445,7 +445,7 @@ print_results (void)
   reduce_output (out);
   grammar_rules_partial_print (out,
                                _("Rules useless in parser due to conflicts"),
-                                 rule_useless_in_parser_p);
+                               rule_useless_in_parser_p);
   conflicts_output (out);
 
   grammar_rules_print (out);
diff --git a/src/reader.c b/src/reader.c
index bffca16d..21ab0df3 100644
--- a/src/reader.c
+++ b/src/reader.c
@@ -634,7 +634,7 @@ packgram (void)
       if (lhs != grammar)
         grammar_rule_check_and_complete (lhs);
 
-      rules[ruleno].user_number = ruleno;
+      rules[ruleno].code = ruleno;
       rules[ruleno].number = ruleno;
       rules[ruleno].lhs = lhs->content.sym->content;
       rules[ruleno].rhs = ritem + itemno;
@@ -782,7 +782,7 @@ check_and_convert_grammar (void)
       endtoken->content->class = token_sym;
       endtoken->content->number = 0;
       /* Value specified by POSIX.  */
-      endtoken->content->user_token_number = 0;
+      endtoken->content->code = 0;
       {
         symbol *alias = symbol_get ("$end", empty_loc);
         symbol_class_set (alias, token_sym, empty_loc, false);
diff --git a/src/symtab.c b/src/symtab.c
index 76ea03e0..fb55b1dd 100644
--- a/src/symtab.c
+++ b/src/symtab.c
@@ -33,6 +33,13 @@
 #include "gram.h"
 #include "intprops.h"
 
+/** Undefined token code.  */
+#define CODE_UNDEFINED (-1)
+
+/* Undefined symbol number.  */
+#define NUMBER_UNDEFINED (-1)
+
+
 static struct hash_table *symbol_table = NULL;
 static struct hash_table *semantic_type_table = NULL;
 
@@ -99,7 +106,7 @@ sym_content_new (symbol *s)
   res->prec_loc = empty_loc;
   res->prec = 0;
   res->assoc = undef_assoc;
-  res->user_token_number = USER_NUMBER_UNDEFINED;
+  res->code = CODE_UNDEFINED;
 
   res->class = unknown_sym;
   res->status = undeclared;
@@ -571,24 +578,24 @@ symbol_class_set (symbol *sym, symbol_class class, 
location loc, bool declaring)
 `------------------------------------------------*/
 
 void
-symbol_user_token_number_set (symbol *sym, int user_token_number, location loc)
+symbol_code_set (symbol *sym, int code, location loc)
 {
-  int *user_token_numberp = &sym->content->user_token_number;
+  int *codep = &sym->content->code;
   if (sym->content->class != token_sym)
     complain (&loc, complaint,
               _("nonterminals cannot be given a token code"));
-  else if (*user_token_numberp != USER_NUMBER_UNDEFINED
-           && *user_token_numberp != user_token_number)
+  else if (*codep != CODE_UNDEFINED
+           && *codep != code)
     complain (&loc, complaint, _("redefining code of token %s"),
               sym->tag);
-  else if (user_token_number == INT_MAX)
+  else if (code == INT_MAX)
     complain (&loc, complaint, _("code of token %s too large"),
               sym->tag);
   else
     {
-      *user_token_numberp = user_token_number;
+      *codep = code;
       /* User defined $end token? */
-      if (user_token_number == 0 && !endtoken)
+      if (code == 0 && !endtoken)
         {
           endtoken = sym->content->symbol;
           /* It is always mapped to 0, so it was already counted in
@@ -735,7 +742,7 @@ symbol_pack (symbol *sym)
 }
 
 static void
-complain_user_token_number_redeclared (int num, symbol *first, symbol *second)
+complain_code_redeclared (int num, symbol *first, symbol *second)
 {
   symbols_sort (&first, &second);
   complain (&second->location, complaint,
@@ -758,13 +765,13 @@ symbol_translation (symbol *sym)
       && !sym->is_alias)
     {
       /* A token which translation has already been set?*/
-      if (token_translations[sym->content->user_token_number]
+      if (token_translations[sym->content->code]
           != undeftoken->content->number)
-        complain_user_token_number_redeclared
-          (sym->content->user_token_number,
-           symbols[token_translations[sym->content->user_token_number]], sym);
+        complain_code_redeclared
+          (sym->content->code,
+           symbols[token_translations[sym->content->code]], sym);
       else
-        token_translations[sym->content->user_token_number]
+        token_translations[sym->content->code]
           = sym->content->number;
     }
 }
@@ -1040,53 +1047,53 @@ symbols_check_defined (void)
 static void
 symbols_token_translations_init (void)
 {
-  bool num_256_available_p = true;
+  bool code_256_available_p = true;
 
   /* Find the highest token code, and whether 256, the POSIX preferred
      token code for the error token, is used.  */
-  max_user_token_number = 0;
+  max_code = 0;
   for (int i = 0; i < ntokens; ++i)
     {
       sym_content *sym = symbols[i]->content;
-      if (sym->user_token_number != USER_NUMBER_UNDEFINED)
+      if (sym->code != CODE_UNDEFINED)
         {
-          if (sym->user_token_number > max_user_token_number)
-            max_user_token_number = sym->user_token_number;
-          if (sym->user_token_number == 256)
-            num_256_available_p = false;
+          if (sym->code > max_code)
+            max_code = sym->code;
+          if (sym->code == 256)
+            code_256_available_p = false;
         }
     }
 
   /* If 256 is not used, assign it to error, to follow POSIX.  */
-  if (num_256_available_p
-      && errtoken->content->user_token_number == USER_NUMBER_UNDEFINED)
-    errtoken->content->user_token_number = 256;
+  if (code_256_available_p
+      && errtoken->content->code == CODE_UNDEFINED)
+    errtoken->content->code = 256;
 
-  /* Set the missing user numbers. */
-  if (max_user_token_number < 256)
-    max_user_token_number = 256;
+  /* Set the missing codes. */
+  if (max_code < 256)
+    max_code = 256;
 
   for (int i = 0; i < ntokens; ++i)
     {
       sym_content *sym = symbols[i]->content;
-      if (sym->user_token_number == USER_NUMBER_UNDEFINED)
+      if (sym->code == CODE_UNDEFINED)
         {
           IGNORE_TYPE_LIMITS_BEGIN
-          if (INT_ADD_WRAPV (max_user_token_number, 1, &max_user_token_number))
+          if (INT_ADD_WRAPV (max_code, 1, &max_code))
             complain (NULL, fatal, _("token number too large"));
           IGNORE_TYPE_LIMITS_END
-          sym->user_token_number = max_user_token_number;
+          sym->code = max_code;
         }
-      if (sym->user_token_number > max_user_token_number)
-        max_user_token_number = sym->user_token_number;
+      if (sym->code > max_code)
+        max_code = sym->code;
     }
 
-  token_translations = xnmalloc (max_user_token_number + 1,
+  token_translations = xnmalloc (max_code + 1,
                                  sizeof *token_translations);
 
   /* Initialize all entries for literal tokens to the internal token
      number for $undefined, which represents all invalid inputs.  */
-  for (int i = 0; i < max_user_token_number + 1; ++i)
+  for (int i = 0; i < max_code + 1; ++i)
     token_translations[i] = undeftoken->content->number;
   for (int i = 0; symbols_sorted[i]; ++i)
     symbol_translation (symbols_sorted[i]);
diff --git a/src/symtab.h b/src/symtab.h
index d16c0270..3ba8efc5 100644
--- a/src/symtab.h
+++ b/src/symtab.h
@@ -149,21 +149,13 @@ struct sym_content
   int prec;
   assoc assoc;
 
-  /** The user specified token number.
-
-      E.g., %token FOO 42.*/
-  int user_token_number;
+  /** Token code, possibly specified by the user (%token FOO 42).  */
+  int code;
 
   symbol_class class;
   declaration_status status;
 };
 
-/** Undefined user number.  */
-# define USER_NUMBER_UNDEFINED -1
-
-/* Undefined internal token number.  */
-# define NUMBER_UNDEFINED (-1)
-
 /** Fetch (or create) the symbol associated to KEY.  */
 symbol *symbol_from_uniqstr (const uniqstr key, location loc);
 
@@ -235,8 +227,8 @@ void symbol_precedence_set (symbol *sym, int prec, assoc a, 
location loc);
 void symbol_class_set (symbol *sym, symbol_class class, location loc,
                        bool declaring);
 
-/** Set the \c user_token_number associated with \c sym.  */
-void symbol_user_token_number_set (symbol *sym, int user_number, location loc);
+/** Set the \c code associated with \c sym.  */
+void symbol_code_set (symbol *sym, int code, location loc);
 
 
 
diff --git a/tests/input.at b/tests/input.at
index e8d67796..e0cf5f01 100644
--- a/tests/input.at
+++ b/tests/input.at
@@ -397,12 +397,12 @@ m4@&t@_define([b4_symbol_dump],
 b4_symbol_if([$1], [is_token], [Token], [Nonterminal]), d@&t@nl
 b4_symbol([$1], [tag]), d@&t@nl
 b4_symbol([$1], [id]), d@&t@nl
-b4_symbol([$1], [user_number]), d@&t@nl
+b4_symbol([$1], [code]), d@&t@nl
 b4_symbol([$1], [type]),
 ])
 
 b4_output_begin([symbols.csv])
-number, class, tag, id, user_number, type,
+number, class, tag, id, code, type,
 b4_symbol_foreach([b4_symbol_dump])d@&t@nl
 b4_output_end
 ]])
@@ -429,7 +429,7 @@ exp:;
 
 AT_BISON_CHECK([-Wno-other -S./dump-symbols.m4 input.y])
 AT_CHECK([cat symbols.csv], [],
-[[number, class, tag, id, user_number, type,
+[[number, class, tag, id, code, type,
 0, Token, "end of file", YYEOF, 0, ,
 1, Token, error, YYerror, 256, ,
 2, Token, "invalid token", YYUNDEF, 257, ,
diff --git a/tests/types.at b/tests/types.at
index 044f0a17..d92c4a43 100644
--- a/tests/types.at
+++ b/tests/types.at
@@ -235,8 +235,8 @@ m4_foreach([b4_skel], [[yacc.c], [glr.c], [lalr1.cc], 
[glr.cc]],
             [10 0.2])])
 
   # A Bison-defined union.
-  # The tokens names are not available directly in C++, we use their
-  # user number to keep it simple between C and C++.
+  # The token names are not available directly in C++, we use their
+  # codes to keep it simple between C and C++.
   AT_TEST([%skeleton "]b4_skel["
            %define api.value.type union],
           [%token <int> ONE 101;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]