version 1.6, 2001/07/16 06:29:45 |
version 1.7, 2001/11/19 19:02:18 |
|
|
void |
void |
output_rule_data() |
output_rule_data() |
{ |
{ |
register int i; |
int i; |
register int j; |
int j; |
|
|
|
|
fprintf(output_file, "short %slhs[] = {%42d,", symbol_prefix, |
fprintf(output_file, "short %slhs[] = {%42d,", symbol_prefix, |
|
|
void |
void |
output_yydefred() |
output_yydefred() |
{ |
{ |
register int i, j; |
int i, j; |
|
|
fprintf(output_file, "short %sdefred[] = {%39d,", symbol_prefix, |
fprintf(output_file, "short %sdefred[] = {%39d,", symbol_prefix, |
(defred[0] ? defred[0] - 2 : 0)); |
(defred[0] ? defred[0] - 2 : 0)); |
|
|
void |
void |
token_actions() |
token_actions() |
{ |
{ |
register int i, j; |
int i, j; |
register int shiftcount, reducecount; |
int shiftcount, reducecount; |
register int max, min; |
int max, min; |
register short *actionrow, *r, *s; |
short *actionrow, *r, *s; |
register action *p; |
action *p; |
|
|
actionrow = NEW2(2*ntokens, short); |
actionrow = NEW2(2*ntokens, short); |
for (i = 0; i < nstates; ++i) |
for (i = 0; i < nstates; ++i) |
|
|
void |
void |
goto_actions() |
goto_actions() |
{ |
{ |
register int i, j, k; |
int i, j, k; |
|
|
state_count = NEW2(nstates, short); |
state_count = NEW2(nstates, short); |
|
|
|
|
default_goto(symbol) |
default_goto(symbol) |
int symbol; |
int symbol; |
{ |
{ |
register int i; |
int i; |
register int m; |
int m; |
register int n; |
int n; |
register int default_state; |
int default_state; |
register int max; |
int max; |
|
|
m = goto_map[symbol]; |
m = goto_map[symbol]; |
n = goto_map[symbol + 1]; |
n = goto_map[symbol + 1]; |
|
|
int symbol; |
int symbol; |
int default_state; |
int default_state; |
{ |
{ |
register int i; |
int i; |
register int m; |
int m; |
register int n; |
int n; |
register short *sp; |
short *sp; |
register short *sp1; |
short *sp1; |
register short *sp2; |
short *sp2; |
register int count; |
int count; |
register int symno; |
int symno; |
|
|
m = goto_map[symbol]; |
m = goto_map[symbol]; |
n = goto_map[symbol + 1]; |
n = goto_map[symbol + 1]; |
|
|
void |
void |
sort_actions() |
sort_actions() |
{ |
{ |
register int i; |
int i; |
register int j; |
int j; |
register int k; |
int k; |
register int t; |
int t; |
register int w; |
int w; |
|
|
order = NEW2(nvectors, short); |
order = NEW2(nvectors, short); |
nentries = 0; |
nentries = 0; |
|
|
void |
void |
pack_table() |
pack_table() |
{ |
{ |
register int i; |
int i; |
register int place; |
int place; |
register int state; |
int state; |
|
|
base = NEW2(nvectors, short); |
base = NEW2(nvectors, short); |
pos = NEW2(nentries, short); |
pos = NEW2(nentries, short); |
|
|
matching_vector(vector) |
matching_vector(vector) |
int vector; |
int vector; |
{ |
{ |
register int i; |
int i; |
register int j; |
int j; |
register int k; |
int k; |
register int t; |
int t; |
register int w; |
int w; |
register int match; |
int match; |
register int prev; |
int prev; |
|
|
i = order[vector]; |
i = order[vector]; |
if (i >= 2*nstates) |
if (i >= 2*nstates) |
|
|
pack_vector(vector) |
pack_vector(vector) |
int vector; |
int vector; |
{ |
{ |
register int i, j, k, l; |
int i, j, k, l; |
register int t; |
int t; |
register int loc; |
int loc; |
register int ok; |
int ok; |
register short *from; |
short *from; |
register short *to; |
short *to; |
int newmax; |
int newmax; |
|
|
i = order[vector]; |
i = order[vector]; |
|
|
void |
void |
output_base() |
output_base() |
{ |
{ |
register int i, j; |
int i, j; |
|
|
fprintf(output_file, "short %ssindex[] = {%39d,", symbol_prefix, base[0]); |
fprintf(output_file, "short %ssindex[] = {%39d,", symbol_prefix, base[0]); |
|
|
|
|
void |
void |
output_table() |
output_table() |
{ |
{ |
register int i; |
int i; |
register int j; |
int j; |
|
|
++outline; |
++outline; |
fprintf(code_file, "#define YYTABLESIZE %d\n", high); |
fprintf(code_file, "#define YYTABLESIZE %d\n", high); |
|
|
void |
void |
output_check() |
output_check() |
{ |
{ |
register int i; |
int i; |
register int j; |
int j; |
|
|
fprintf(output_file, "short %scheck[] = {%40d,", symbol_prefix, |
fprintf(output_file, "short %scheck[] = {%40d,", symbol_prefix, |
check[0]); |
check[0]); |
|
|
is_C_identifier(name) |
is_C_identifier(name) |
char *name; |
char *name; |
{ |
{ |
register char *s; |
char *s; |
register int c; |
int c; |
|
|
s = name; |
s = name; |
c = *s; |
c = *s; |
|
|
void |
void |
output_defines() |
output_defines() |
{ |
{ |
register int c, i; |
int c, i; |
register char *s; |
char *s; |
|
|
for (i = 2; i < ntokens; ++i) |
for (i = 2; i < ntokens; ++i) |
{ |
{ |
|
|
void |
void |
output_stored_text() |
output_stored_text() |
{ |
{ |
register int c; |
int c; |
register FILE *in, *out; |
FILE *in, *out; |
|
|
fclose(text_file); |
fclose(text_file); |
text_file = fopen(text_file_name, "r"); |
text_file = fopen(text_file_name, "r"); |
|
|
void |
void |
output_debug() |
output_debug() |
{ |
{ |
register int i, j, k, max; |
int i, j, k, max; |
char **symnam, *s; |
char **symnam, *s; |
|
|
++outline; |
++outline; |
|
|
void |
void |
output_trailing_text() |
output_trailing_text() |
{ |
{ |
register int c, last; |
int c, last; |
register FILE *in, *out; |
FILE *in, *out; |
|
|
if (line == 0) |
if (line == 0) |
return; |
return; |
|
|
void |
void |
output_semantic_actions() |
output_semantic_actions() |
{ |
{ |
register int c, last; |
int c, last; |
register FILE *out; |
FILE *out; |
|
|
fclose(action_file); |
fclose(action_file); |
action_file = fopen(action_file_name, "r"); |
action_file = fopen(action_file_name, "r"); |
|
|
void |
void |
free_itemsets() |
free_itemsets() |
{ |
{ |
register core *cp, *next; |
core *cp, *next; |
|
|
FREE(state_table); |
FREE(state_table); |
for (cp = first_state; cp; cp = next) |
for (cp = first_state; cp; cp = next) |
|
|
void |
void |
free_shifts() |
free_shifts() |
{ |
{ |
register shifts *sp, *next; |
shifts *sp, *next; |
|
|
FREE(shift_table); |
FREE(shift_table); |
for (sp = first_shift; sp; sp = next) |
for (sp = first_shift; sp; sp = next) |
|
|
void |
void |
free_reductions() |
free_reductions() |
{ |
{ |
register reductions *rp, *next; |
reductions *rp, *next; |
|
|
FREE(reduction_table); |
FREE(reduction_table); |
for (rp = first_reduction; rp; rp = next) |
for (rp = first_reduction; rp; rp = next) |