summaryrefslogtreecommitdiff
path: root/src/graphviz.c
diff options
context:
space:
mode:
authorAkim Demaille <akim.demaille@gmail.com>2018-09-15 07:18:45 +0200
committerAkim Demaille <akim.demaille@gmail.com>2018-09-15 07:20:49 +0200
commit6cc69f4d14fd9e196162c181656430514051bd95 (patch)
treecff5426726204276c7c742e5340de5773f52071c /src/graphviz.c
parent46532a9d3bf6428d8c8f3d1dd378dbad5938ec8f (diff)
downloadbison-6cc69f4d14fd9e196162c181656430514051bd95.tar.gz
style: reduce scopes in graphviz.c
Diffstat (limited to 'src/graphviz.c')
-rw-r--r--src/graphviz.c67
1 files changed, 31 insertions, 36 deletions
diff --git a/src/graphviz.c b/src/graphviz.c
index d85b23de..ff2f4071 100644
--- a/src/graphviz.c
+++ b/src/graphviz.c
@@ -87,12 +87,14 @@ escape (char const *name)
static void
no_reduce_bitset_init (state const *s, bitset *no_reduce_set)
{
- int n;
*no_reduce_set = bitset_create (ntokens, BITSET_FIXED);
bitset_zero (*no_reduce_set);
- FOR_EACH_SHIFT (s->transitions, n)
- bitset_set (*no_reduce_set, TRANSITION_SYMBOL (s->transitions, n));
- for (n = 0; n < s->errs->num; ++n)
+ {
+ int n;
+ FOR_EACH_SHIFT (s->transitions, n)
+ bitset_set (*no_reduce_set, TRANSITION_SYMBOL (s->transitions, n));
+ }
+ for (int n = 0; n < s->errs->num; ++n)
if (s->errs->symbols[n])
bitset_set (*no_reduce_set, s->errs->symbols[n]->content->number);
}
@@ -145,11 +147,9 @@ conclude_red (struct obstack *out, int source, rule_number ruleno,
static bool
print_token (struct obstack *out, bool first, char const *tok)
{
- char const *q = escape (tok);
-
if (! first)
obstack_sgrow (out, ", ");
- obstack_sgrow (out, q);
+ obstack_sgrow (out, escape (tok));
return false;
}
@@ -157,8 +157,7 @@ void
output_red (state const *s, reductions const *reds, FILE *fout)
{
bitset no_reduce_set;
- int j;
- int source = s->number;
+ no_reduce_bitset_init (s, &no_reduce_set);
/* Two obstacks are needed: one for the enabled reductions, and one
for the disabled reductions, because in the end we want two
@@ -166,42 +165,38 @@ output_red (state const *s, reductions const *reds, FILE *fout)
be printed. */
struct obstack dout;
struct obstack eout;
-
- no_reduce_bitset_init (s, &no_reduce_set);
obstack_init (&dout);
obstack_init (&eout);
- for (j = 0; j < reds->num; ++j)
+ const int source = s->number;
+ for (int j = 0; j < reds->num; ++j)
{
- bool defaulted = false;
- bool firstd = true;
- bool firste = true;
- rule_number ruleno = reds->rules[j]->number;
- rule *default_reduction = NULL;
+ rule *default_reduction =
+ yydefact[s->number]
+ ? &rules[yydefact[s->number] - 1]
+ : NULL;
- if (yydefact[s->number] != 0)
- default_reduction = &rules[yydefact[s->number] - 1];
+ bool defaulted = default_reduction && default_reduction == reds->rules[j];
/* Build the lookahead tokens lists, one for enabled transitions and one
for disabled transistions. */
- if (default_reduction && default_reduction == reds->rules[j])
- defaulted = true;
+ bool firstd = true;
+ bool firste = true;
+ rule_number ruleno = reds->rules[j]->number;
+
if (reds->lookahead_tokens)
- {
- int i;
- for (i = 0; i < ntokens; i++)
- if (bitset_test (reds->lookahead_tokens[j], i))
- {
- if (bitset_test (no_reduce_set, i))
- firstd = print_token (&dout, firstd, symbols[i]->tag);
- else
- {
- if (! defaulted)
- firste = print_token (&eout, firste, symbols[i]->tag);
- bitset_set (no_reduce_set, i);
- }
- }
- }
+ for (int i = 0; i < ntokens; i++)
+ if (bitset_test (reds->lookahead_tokens[j], i))
+ {
+ if (bitset_test (no_reduce_set, i))
+ firstd = print_token (&dout, firstd, symbols[i]->tag);
+ else
+ {
+ if (! defaulted)
+ firste = print_token (&eout, firste, symbols[i]->tag);
+ bitset_set (no_reduce_set, i);
+ }
+ }
/* Do the actual output. */
conclude_red (&dout, source, ruleno, false, firstd, fout);