mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-22 18:53:04 +00:00
style: scope reduction in print-xml
* src/print-xml.c: here.
This commit is contained in:
@@ -19,11 +19,12 @@
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
#include "print-xml.h"
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
|
||||||
#include <stdarg.h>
|
|
||||||
|
|
||||||
#include <bitset.h>
|
#include <bitset.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
#include "closure.h"
|
#include "closure.h"
|
||||||
#include "conflicts.h"
|
#include "conflicts.h"
|
||||||
@@ -32,7 +33,6 @@
|
|||||||
#include "gram.h"
|
#include "gram.h"
|
||||||
#include "lalr.h"
|
#include "lalr.h"
|
||||||
#include "lr0.h"
|
#include "lr0.h"
|
||||||
#include "print-xml.h"
|
|
||||||
#include "print.h"
|
#include "print.h"
|
||||||
#include "reader.h"
|
#include "reader.h"
|
||||||
#include "reduce.h"
|
#include "reduce.h"
|
||||||
@@ -57,7 +57,6 @@ static struct escape_buf escape_bufs[num_escape_bufs];
|
|||||||
static void
|
static void
|
||||||
print_core (FILE *out, int level, state *s)
|
print_core (FILE *out, int level, state *s)
|
||||||
{
|
{
|
||||||
size_t i;
|
|
||||||
item_number *sitems = s->items;
|
item_number *sitems = s->items;
|
||||||
size_t snritems = s->nitems;
|
size_t snritems = s->nitems;
|
||||||
|
|
||||||
@@ -74,7 +73,7 @@ print_core (FILE *out, int level, state *s)
|
|||||||
|
|
||||||
xml_puts (out, level, "<itemset>");
|
xml_puts (out, level, "<itemset>");
|
||||||
|
|
||||||
for (i = 0; i < snritems; i++)
|
for (size_t i = 0; i < snritems; i++)
|
||||||
{
|
{
|
||||||
bool printed = false;
|
bool printed = false;
|
||||||
item_number *sp1 = ritem + sitems[i];
|
item_number *sp1 = ritem + sitems[i];
|
||||||
@@ -380,15 +379,13 @@ print_state (FILE *out, int level, state *s)
|
|||||||
static void
|
static void
|
||||||
print_grammar (FILE *out, int level)
|
print_grammar (FILE *out, int level)
|
||||||
{
|
{
|
||||||
symbol_number i;
|
|
||||||
|
|
||||||
fputc ('\n', out);
|
fputc ('\n', out);
|
||||||
xml_puts (out, level, "<grammar>");
|
xml_puts (out, level, "<grammar>");
|
||||||
grammar_rules_print_xml (out, level);
|
grammar_rules_print_xml (out, level);
|
||||||
|
|
||||||
/* Terminals */
|
/* Terminals */
|
||||||
xml_puts (out, level + 1, "<terminals>");
|
xml_puts (out, level + 1, "<terminals>");
|
||||||
for (i = 0; i < max_user_token_number + 1; i++)
|
for (symbol_number i = 0; i < max_user_token_number + 1; i++)
|
||||||
if (token_translations[i] != undeftoken->content->number)
|
if (token_translations[i] != undeftoken->content->number)
|
||||||
{
|
{
|
||||||
char const *tag = symbols[token_translations[i]]->tag;
|
char const *tag = symbols[token_translations[i]]->tag;
|
||||||
@@ -411,7 +408,7 @@ print_grammar (FILE *out, int level)
|
|||||||
|
|
||||||
/* Nonterminals */
|
/* Nonterminals */
|
||||||
xml_puts (out, level + 1, "<nonterminals>");
|
xml_puts (out, level + 1, "<nonterminals>");
|
||||||
for (i = ntokens; i < nsyms + nuseless_nonterminals; i++)
|
for (symbol_number i = ntokens; i < nsyms + nuseless_nonterminals; i++)
|
||||||
{
|
{
|
||||||
char const *tag = symbols[i]->tag;
|
char const *tag = symbols[i]->tag;
|
||||||
xml_printf (out, level + 2,
|
xml_printf (out, level + 2,
|
||||||
@@ -428,8 +425,7 @@ print_grammar (FILE *out, int level)
|
|||||||
void
|
void
|
||||||
xml_indent (FILE *out, int level)
|
xml_indent (FILE *out, int level)
|
||||||
{
|
{
|
||||||
int i;
|
for (int i = 0; i < level; i++)
|
||||||
for (i = 0; i < level; i++)
|
|
||||||
fputs (" ", out);
|
fputs (" ", out);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -460,14 +456,13 @@ xml_escape_string (struct escape_buf *buf, char const *str)
|
|||||||
{
|
{
|
||||||
size_t len = strlen (str);
|
size_t len = strlen (str);
|
||||||
size_t max_expansion = sizeof """ - 1;
|
size_t max_expansion = sizeof """ - 1;
|
||||||
char *p;
|
|
||||||
|
|
||||||
if (buf->size <= max_expansion * len)
|
if (buf->size <= max_expansion * len)
|
||||||
{
|
{
|
||||||
buf->size = max_expansion * len + 1;
|
buf->size = max_expansion * len + 1;
|
||||||
buf->ptr = x2realloc (buf->ptr, &buf->size);
|
buf->ptr = x2realloc (buf->ptr, &buf->size);
|
||||||
}
|
}
|
||||||
p = buf->ptr;
|
char *p = buf->ptr;
|
||||||
|
|
||||||
for (; *str; str++)
|
for (; *str; str++)
|
||||||
switch (*str)
|
switch (*str)
|
||||||
@@ -498,11 +493,11 @@ xml_escape (char const *str)
|
|||||||
void
|
void
|
||||||
print_xml (void)
|
print_xml (void)
|
||||||
{
|
{
|
||||||
int level = 0;
|
|
||||||
|
|
||||||
FILE *out = xfopen (spec_xml_file, "w");
|
FILE *out = xfopen (spec_xml_file, "w");
|
||||||
|
|
||||||
fputs ("<?xml version=\"1.0\"?>\n\n", out);
|
fputs ("<?xml version=\"1.0\"?>\n\n", out);
|
||||||
|
|
||||||
|
int level = 0;
|
||||||
xml_printf (out, level,
|
xml_printf (out, level,
|
||||||
"<bison-xml-report version=\"%s\" bug-report=\"%s\""
|
"<bison-xml-report version=\"%s\" bug-report=\"%s\""
|
||||||
" url=\"%s\">",
|
" url=\"%s\">",
|
||||||
@@ -517,27 +512,21 @@ print_xml (void)
|
|||||||
/* print grammar */
|
/* print grammar */
|
||||||
print_grammar (out, level + 1);
|
print_grammar (out, level + 1);
|
||||||
|
|
||||||
no_reduce_set = bitset_create (ntokens, BITSET_FIXED);
|
no_reduce_set = bitset_create (ntokens, BITSET_FIXED);
|
||||||
|
|
||||||
/* print automaton */
|
/* print automaton */
|
||||||
fputc ('\n', out);
|
fputc ('\n', out);
|
||||||
xml_puts (out, level + 1, "<automaton>");
|
xml_puts (out, level + 1, "<automaton>");
|
||||||
{
|
for (state_number i = 0; i < nstates; i++)
|
||||||
state_number i;
|
print_state (out, level + 2, states[i]);
|
||||||
for (i = 0; i < nstates; i++)
|
|
||||||
print_state (out, level + 2, states[i]);
|
|
||||||
}
|
|
||||||
xml_puts (out, level + 1, "</automaton>");
|
xml_puts (out, level + 1, "</automaton>");
|
||||||
|
|
||||||
bitset_free (no_reduce_set);
|
bitset_free (no_reduce_set);
|
||||||
|
|
||||||
xml_puts (out, 0, "</bison-xml-report>");
|
xml_puts (out, 0, "</bison-xml-report>");
|
||||||
|
|
||||||
{
|
for (int i = 0; i < num_escape_bufs; ++i)
|
||||||
int i;
|
free (escape_bufs[i].ptr);
|
||||||
for (i = 0; i < num_escape_bufs; ++i)
|
|
||||||
free (escape_bufs[i].ptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
xfclose (out);
|
xfclose (out);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,10 @@
|
|||||||
#ifndef PRINT_XML_H_
|
#ifndef PRINT_XML_H_
|
||||||
# define PRINT_XML_H_
|
# define PRINT_XML_H_
|
||||||
|
|
||||||
|
# include <config.h>
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
|
||||||
void xml_indent (FILE *out, int level);
|
void xml_indent (FILE *out, int level);
|
||||||
void xml_puts (FILE *, int, char const *);
|
void xml_puts (FILE *, int, char const *);
|
||||||
void xml_printf (FILE *, int, char const *, ...);
|
void xml_printf (FILE *, int, char const *, ...);
|
||||||
|
|||||||
Reference in New Issue
Block a user