summaryrefslogtreecommitdiffstats
path: root/yacc/mkpar.c
diff options
context:
space:
mode:
Diffstat (limited to 'yacc/mkpar.c')
-rw-r--r--yacc/mkpar.c244
1 files changed, 122 insertions, 122 deletions
diff --git a/yacc/mkpar.c b/yacc/mkpar.c
index 8b46b01f8..0d70fb8fb 100644
--- a/yacc/mkpar.c
+++ b/yacc/mkpar.c
@@ -42,7 +42,7 @@ void make_parser(void)
parser = NEW2(nstates, action *);
for (i = 0; i < nstates; i++)
- parser[i] = parse_actions(i);
+ parser[i] = parse_actions(i);
find_final_state();
remove_conflicts();
@@ -76,23 +76,23 @@ get_shifts(int stateno)
sp = shift_table[stateno];
if (sp)
{
- to_state = sp->shift;
- for (i = sp->nshifts - 1; i >= 0; i--)
- {
- k = to_state[i];
- symbol = accessing_symbol[k];
- if (ISTOKEN(symbol))
- {
- temp = NEW(action);
- temp->next = actions;
- temp->symbol = symbol;
- temp->number = k;
- temp->prec = symbol_prec[symbol];
- temp->action_code = SHIFT;
- temp->assoc = symbol_assoc[symbol];
- actions = temp;
- }
- }
+ to_state = sp->shift;
+ for (i = sp->nshifts - 1; i >= 0; i--)
+ {
+ k = to_state[i];
+ symbol = accessing_symbol[k];
+ if (ISTOKEN(symbol))
+ {
+ temp = NEW(action);
+ temp->next = actions;
+ temp->symbol = symbol;
+ temp->number = k;
+ temp->prec = symbol_prec[symbol];
+ temp->action_code = SHIFT;
+ temp->assoc = symbol_assoc[symbol];
+ actions = temp;
+ }
+ }
}
return (actions);
}
@@ -109,13 +109,13 @@ add_reductions(int stateno, register action *actions)
n = lookaheads[stateno + 1];
for (i = m; i < n; i++)
{
- ruleno = LAruleno[i];
- rowp = LA + i * tokensetsize;
- for (j = ntokens - 1; j >= 0; j--)
- {
- if (BIT(rowp, j))
- actions = add_reduce(actions, ruleno, j);
- }
+ ruleno = LAruleno[i];
+ rowp = LA + i * tokensetsize;
+ for (j = ntokens - 1; j >= 0; j--)
+ {
+ if (BIT(rowp, j))
+ actions = add_reduce(actions, ruleno, j);
+ }
}
return (actions);
}
@@ -128,19 +128,19 @@ add_reduce(register action *actions, register int ruleno, register int symbol)
prev = 0;
for (next = actions; next && next->symbol < symbol; next = next->next)
- prev = next;
+ prev = next;
while (next && next->symbol == symbol && next->action_code == SHIFT)
{
- prev = next;
- next = next->next;
+ prev = next;
+ next = next->next;
}
while (next && next->symbol == symbol &&
- next->action_code == REDUCE && next->number < ruleno)
+ next->action_code == REDUCE && next->number < ruleno)
{
- prev = next;
- next = next->next;
+ prev = next;
+ next = next->next;
}
temp = NEW(action);
@@ -152,9 +152,9 @@ add_reduce(register action *actions, register int ruleno, register int symbol)
temp->assoc = rassoc[ruleno];
if (prev)
- prev->next = temp;
+ prev->next = temp;
else
- actions = temp;
+ actions = temp;
return (actions);
}
@@ -171,8 +171,8 @@ void find_final_state(void)
goal = ritem[1];
for (i = p->nshifts - 1; i >= 0; --i)
{
- final_state = to_state[i];
- if (accessing_symbol[final_state] == goal) break;
+ final_state = to_state[i];
+ if (accessing_symbol[final_state] == goal) break;
}
}
@@ -186,26 +186,26 @@ void unused_rules(void)
if (rules_used == 0) no_space();
for (i = 0; i < nrules; ++i)
- rules_used[i] = 0;
+ rules_used[i] = 0;
for (i = 0; i < nstates; ++i)
{
- for (p = parser[i]; p; p = p->next)
- {
- if (p->action_code == REDUCE && p->suppressed == 0)
- rules_used[p->number] = 1;
- }
+ for (p = parser[i]; p; p = p->next)
+ {
+ if (p->action_code == REDUCE && p->suppressed == 0)
+ rules_used[p->number] = 1;
+ }
}
nunused = 0;
for (i = 3; i < nrules; ++i)
- if (!rules_used[i]) ++nunused;
+ if (!rules_used[i]) ++nunused;
if (nunused){
- if (nunused == 1)
- fprintf(stderr, "1 rule never reduced\n");
- else
- fprintf(stderr, "%d rules never reduced\n", nunused);
+ if (nunused == 1)
+ fprintf(stderr, "1 rule never reduced\n");
+ else
+ fprintf(stderr, "%d rules never reduced\n", nunused);
}
}
@@ -223,65 +223,65 @@ void remove_conflicts(void)
pref = NULL;
for (i = 0; i < nstates; i++)
{
- SRcount = 0;
- RRcount = 0;
- symbol = -1;
- for (p = parser[i]; p; p = p->next)
- {
- if (p->symbol != symbol)
- {
- pref = p;
- symbol = p->symbol;
- }
- else if (i == final_state && symbol == 0)
- {
- SRcount++;
- p->suppressed = 1;
- }
- else if (pref->action_code == SHIFT)
- {
- if (pref->prec > 0 && p->prec > 0)
- {
- if (pref->prec < p->prec)
- {
- pref->suppressed = 2;
- pref = p;
- }
- else if (pref->prec > p->prec)
- {
- p->suppressed = 2;
- }
- else if (pref->assoc == LEFT)
- {
- pref->suppressed = 2;
- pref = p;
- }
- else if (pref->assoc == RIGHT)
- {
- p->suppressed = 2;
- }
- else
- {
- pref->suppressed = 2;
- p->suppressed = 2;
- }
- }
- else
- {
- SRcount++;
- p->suppressed = 1;
- }
- }
- else
- {
- RRcount++;
- p->suppressed = 1;
- }
- }
- SRtotal += SRcount;
- RRtotal += RRcount;
- SRconflicts[i] = SRcount;
- RRconflicts[i] = RRcount;
+ SRcount = 0;
+ RRcount = 0;
+ symbol = -1;
+ for (p = parser[i]; p; p = p->next)
+ {
+ if (p->symbol != symbol)
+ {
+ pref = p;
+ symbol = p->symbol;
+ }
+ else if (i == final_state && symbol == 0)
+ {
+ SRcount++;
+ p->suppressed = 1;
+ }
+ else if (pref->action_code == SHIFT)
+ {
+ if (pref->prec > 0 && p->prec > 0)
+ {
+ if (pref->prec < p->prec)
+ {
+ pref->suppressed = 2;
+ pref = p;
+ }
+ else if (pref->prec > p->prec)
+ {
+ p->suppressed = 2;
+ }
+ else if (pref->assoc == LEFT)
+ {
+ pref->suppressed = 2;
+ pref = p;
+ }
+ else if (pref->assoc == RIGHT)
+ {
+ p->suppressed = 2;
+ }
+ else
+ {
+ pref->suppressed = 2;
+ p->suppressed = 2;
+ }
+ }
+ else
+ {
+ SRcount++;
+ p->suppressed = 1;
+ }
+ }
+ else
+ {
+ RRcount++;
+ p->suppressed = 1;
+ }
+ }
+ SRtotal += SRcount;
+ RRtotal += RRcount;
+ SRconflicts[i] = SRcount;
+ RRconflicts[i] = RRcount;
}
}
@@ -289,17 +289,17 @@ void remove_conflicts(void)
void total_conflicts(void)
{
if (SRtotal == 1)
- fprintf(stderr, "1 shift/reduce conflict");
+ fprintf(stderr, "1 shift/reduce conflict");
else if (SRtotal > 1)
- fprintf(stderr, "%d shift/reduce conflicts", SRtotal);
+ fprintf(stderr, "%d shift/reduce conflicts", SRtotal);
if (SRtotal && RRtotal)
- fprintf(stderr, ", ");
+ fprintf(stderr, ", ");
if (RRtotal == 1)
- fprintf(stderr, "1 reduce/reduce conflict");
+ fprintf(stderr, "1 reduce/reduce conflict");
else if (RRtotal > 1)
- fprintf(stderr, "%d reduce/reduce conflicts", RRtotal);
+ fprintf(stderr, "%d reduce/reduce conflicts", RRtotal);
fprintf(stderr, ".\n");
}
@@ -315,20 +315,20 @@ sole_reduction(int stateno)
ruleno = 0;
for (p = parser[stateno]; p; p = p->next)
{
- if (p->action_code == SHIFT && p->suppressed == 0)
- return (0);
- else if (p->action_code == REDUCE && p->suppressed == 0)
- {
- if (ruleno > 0 && p->number != ruleno)
- return (0);
- if (p->symbol != 1)
- ++count;
- ruleno = p->number;
- }
+ if (p->action_code == SHIFT && p->suppressed == 0)
+ return (0);
+ else if (p->action_code == REDUCE && p->suppressed == 0)
+ {
+ if (ruleno > 0 && p->number != ruleno)
+ return (0);
+ if (p->symbol != 1)
+ ++count;
+ ruleno = p->number;
+ }
}
if (count == 0)
- return (0);
+ return (0);
return (ruleno);
}
@@ -339,7 +339,7 @@ void defreds(void)
defred = NEW2(nstates, short);
for (i = 0; i < nstates; i++)
- defred[i] = sole_reduction(i);
+ defred[i] = sole_reduction(i);
}
void free_action_row(register action *p)