]> git.saurik.com Git - bison.git/blobdiff - src/print-xml.c
tests: c++: fix a C++03 conformance issue
[bison.git] / src / print-xml.c
index ce71e1584c7db8bc213f575bdcadf98c26f58eff..7bdc36d54fa41a9ce8e19aee21c0eec46d68dbfb 100644 (file)
@@ -1,6 +1,6 @@
 /* Print an xml on generated parser, for Bison,
 
 /* Print an xml on generated parser, for Bison,
 
-   Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2015 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
 
    This file is part of Bison, the GNU Compiler Compiler.
 
@@ -45,7 +45,8 @@ struct escape_buf
   char *ptr;
   size_t size;
 };
   char *ptr;
   size_t size;
 };
-static struct escape_buf escape_bufs[3];
+enum { num_escape_bufs = 3 };
+static struct escape_buf escape_bufs[num_escape_bufs];
 
 
 /*--------------------------------.
 
 
 /*--------------------------------.
@@ -64,40 +65,39 @@ print_core (FILE *out, int level, state *s)
   sitems = itemset;
   snritems = nitemset;
 
   sitems = itemset;
   snritems = nitemset;
 
-  if (!snritems) {
-    xml_puts (out, level, "<itemset/>");
-    return;
-  }
+  if (!snritems)
+    {
+      xml_puts (out, level, "<itemset/>");
+      return;
+    }
 
   xml_puts (out, level, "<itemset>");
 
   for (i = 0; i < snritems; i++)
     {
       bool printed = false;
 
   xml_puts (out, level, "<itemset>");
 
   for (i = 0; i < snritems; i++)
     {
       bool printed = false;
-      item_number *sp;
-      item_number *sp1;
-      rule_number r;
-
-      sp1 = sp = ritem + sitems[i];
+      item_number *sp1 = ritem + sitems[i];
+      item_number *sp = sp1;
+      rule *r;
 
 
-      while (*sp >= 0)
+      while (0 <= *sp)
         sp++;
 
         sp++;
 
-      r = item_number_as_rule_number (*sp);
-      sp = rules[r].rhs;
+      r = &rules[item_number_as_rule_number (*sp)];
+      sp = r->rhs;
 
       /* Display the lookahead tokens?  */
       if (item_number_is_rule_number (*sp1))
         {
           reductions *reds = s->reductions;
 
       /* Display the lookahead tokens?  */
       if (item_number_is_rule_number (*sp1))
         {
           reductions *reds = s->reductions;
-          int red = state_reduction_find (s, &rules[r]);
+          int red = state_reduction_find (s, r);
           /* Print item with lookaheads if there are. */
           if (reds->lookahead_tokens && red != -1)
             {
               xml_printf (out, level + 1,
                           "<item rule-number=\"%d\" point=\"%d\">",
           /* Print item with lookaheads if there are. */
           if (reds->lookahead_tokens && red != -1)
             {
               xml_printf (out, level + 1,
                           "<item rule-number=\"%d\" point=\"%d\">",
-                          rules[r].number, sp1 - sp);
-              state_rule_lookahead_tokens_print_xml (s, &rules[r],
+                          r->number, sp1 - sp);
+              state_rule_lookahead_tokens_print_xml (s, r,
                                                      out, level + 2);
               xml_puts (out, level + 1, "</item>");
               printed = true;
                                                      out, level + 2);
               xml_puts (out, level + 1, "</item>");
               printed = true;
@@ -105,12 +105,10 @@ print_core (FILE *out, int level, state *s)
         }
 
       if (!printed)
         }
 
       if (!printed)
-        {
-          xml_printf (out, level + 1,
-                      "<item rule-number=\"%d\" point=\"%d\"/>",
-                      rules[r].number,
-                      sp1 - sp);
-        }
+        xml_printf (out, level + 1,
+                    "<item rule-number=\"%d\" point=\"%d\"/>",
+                    r->number,
+                    sp1 - sp);
     }
   xml_puts (out, level, "</itemset>");
 }
     }
   xml_puts (out, level, "</itemset>");
 }
@@ -135,10 +133,11 @@ print_transitions (state *s, FILE *out, int level)
       }
 
   /* Nothing to report. */
       }
 
   /* Nothing to report. */
-  if (!n) {
-    xml_puts (out, level, "<transitions/>");
-    return;
-  }
+  if (!n)
+    {
+      xml_puts (out, level, "<transitions/>");
+      return;
+    }
 
   /* Report lookahead tokens and shifts.  */
   xml_puts (out, level, "<transitions>");
 
   /* Report lookahead tokens and shifts.  */
   xml_puts (out, level, "<transitions>");
@@ -189,10 +188,11 @@ print_errs (FILE *out, int level, state *s)
       count = true;
 
   /* Nothing to report. */
       count = true;
 
   /* Nothing to report. */
-  if (!count) {
-    xml_puts (out, level, "<errors/>");
-    return;
-  }
+  if (!count)
+    {
+      xml_puts (out, level, "<errors/>");
+      return;
+    }
 
   /* Report lookahead tokens and errors.  */
   xml_puts (out, level, "<errors>");
 
   /* Report lookahead tokens and errors.  */
   xml_puts (out, level, "<errors>");
@@ -209,7 +209,7 @@ print_errs (FILE *out, int level, state *s)
 
 
 /*-------------------------------------------------------------------------.
 
 
 /*-------------------------------------------------------------------------.
-| Report a reduction of RULE on LOOKAHEAD_TOKEN (which can be `default').  |
+| Report a reduction of RULE on LOOKAHEAD_TOKEN (which can be 'default').  |
 | If not ENABLED, the rule is masked by a shift or a reduce (S/R and       |
 | R/R conflicts).                                                          |
 `-------------------------------------------------------------------------*/
 | If not ENABLED, the rule is masked by a shift or a reduce (S/R and       |
 | R/R conflicts).                                                          |
 `-------------------------------------------------------------------------*/
@@ -286,10 +286,11 @@ print_reductions (FILE *out, int level, state *s)
       }
 
   /* Nothing to report. */
       }
 
   /* Nothing to report. */
-  if (!report) {
-    xml_puts (out, level, "<reductions/>");
-    return;
-  }
+  if (!report)
+    {
+      xml_puts (out, level, "<reductions/>");
+      return;
+    }
 
   xml_puts (out, level, "<reductions>");
 
 
   xml_puts (out, level, "<reductions>");
 
@@ -496,7 +497,6 @@ xml_escape (char const *str)
 void
 print_xml (void)
 {
 void
 print_xml (void)
 {
-  state_number i;
   int level = 0;
 
   FILE *out = xfopen (spec_xml_file, "w");
   int level = 0;
 
   FILE *out = xfopen (spec_xml_file, "w");
@@ -522,8 +522,11 @@ print_xml (void)
   /* print automaton */
   fputc ('\n', out);
   xml_puts (out, level + 1, "<automaton>");
   /* print automaton */
   fputc ('\n', out);
   xml_puts (out, level + 1, "<automaton>");
-  for (i = 0; i < nstates; i++)
-    print_state (out, level + 2, states[i]);
+  {
+    state_number i;
+    for (i = 0; i < nstates; i++)
+      print_state (out, level + 2, states[i]);
+  }
   xml_puts (out, level + 1, "</automaton>");
 
   bitset_free (no_reduce_set);
   xml_puts (out, level + 1, "</automaton>");
 
   bitset_free (no_reduce_set);
@@ -531,8 +534,11 @@ print_xml (void)
 
   xml_puts (out, 0, "</bison-xml-report>");
 
 
   xml_puts (out, 0, "</bison-xml-report>");
 
-  free (escape_bufs[0].ptr);
-  free (escape_bufs[1].ptr);
+  {
+    int i;
+    for (i = 0; i < num_escape_bufs; ++i)
+      free (escape_bufs[i].ptr);
+  }
 
   xfclose (out);
 }
 
   xfclose (out);
 }