diff options
-rw-r--r-- | yacc/closure.c | 25 | ||||
-rw-r--r-- | yacc/defs.h | 20 | ||||
-rw-r--r-- | yacc/error.c | 163 | ||||
-rw-r--r-- | yacc/lalr.c | 62 | ||||
-rw-r--r-- | yacc/lr0.c | 51 | ||||
-rw-r--r-- | yacc/main.c | 29 | ||||
-rw-r--r-- | yacc/mkpar.c | 43 | ||||
-rw-r--r-- | yacc/output.c | 87 | ||||
-rw-r--r-- | yacc/parsing.c | 136 | ||||
-rw-r--r-- | yacc/reader.c | 84 | ||||
-rw-r--r-- | yacc/skeleton.c | 4 | ||||
-rw-r--r-- | yacc/symtab.c | 15 | ||||
-rw-r--r-- | yacc/verbose.c | 52 | ||||
-rw-r--r-- | yacc/warshall.c | 12 |
14 files changed, 368 insertions, 415 deletions
diff --git a/yacc/closure.c b/yacc/closure.c index c69457c5d..b67245c78 100644 --- a/yacc/closure.c +++ b/yacc/closure.c @@ -8,7 +8,12 @@ static unsigned *first_derives; static unsigned *EFF; -set_EFF() + +void print_EFF (); +void print_first_derives (); +void print_closure (); + +void set_EFF() { register unsigned *row; register int symbol; @@ -44,7 +49,7 @@ set_EFF() } -set_first_derives() +void set_first_derives() { register unsigned *rrow; register unsigned *vrow; @@ -101,9 +106,9 @@ set_first_derives() } -closure(nucleus, n) -short *nucleus; -int n; +void closure(nucleus, n) + short int *nucleus; + int n; { register int ruleno; register unsigned word; @@ -176,7 +181,7 @@ int n; -finalize_closure() +void finalize_closure() { FREE(itemset); FREE(ruleset); @@ -186,8 +191,8 @@ finalize_closure() #ifdef DEBUG -print_closure(n) -int n; +void print_closure(n) + int n; { register short *isp; @@ -197,7 +202,7 @@ int n; } -print_EFF() +void print_EFF() { register int i, j, k; register unsigned *rowp; @@ -229,7 +234,7 @@ print_EFF() } -print_first_derives() +void print_first_derives() { register int i; register int j; diff --git a/yacc/defs.h b/yacc/defs.h index b79a1137c..506ad60a9 100644 --- a/yacc/defs.h +++ b/yacc/defs.h @@ -290,7 +290,25 @@ extern short final_state; extern char *allocate(); extern bucket *lookup(); extern bucket *make_bucket(); - +extern action *parse_actions(); +extern action *get_shifts(); +extern action *add_reductions(); +extern action *add_reduce(); +extern void closure (), create_symbol_table (), default_action_error (); +extern void done (), entry_without_type (), fatal (), finalize_closure (); +extern void free_parser (), free_symbol_table (), free_symbols (); +extern void illegal_character (), illegal_token_ref (), lalr (), lr0 (); +extern void make_parser (), no_grammar (), no_space (), open_error (); +extern void output (), over_unionized (), prec_redeclared (), reader (); +extern void reflexive_transitive_closure (), reprec_warning (); +extern void retyped_warning (), revalued_warning (), set_first_derives (); +extern void syntax_error (), terminal_lhs (), terminal_start (); +extern void tokenized_start (), too_many_entries (), undefined_goal (); +extern void undefined_symbol_warning (), unexpected_EOF (), unknown_rhs (); +extern void unterminated_action (), unterminated_comment (); +extern void unterminated_string (), unterminated_text (); +extern void unterminated_union (), used_reserved (); +extern void verbose (), write_section (); /* system variables */ diff --git a/yacc/error.c b/yacc/error.c index 06b3653b4..82ae1bd2c 100644 --- a/yacc/error.c +++ b/yacc/error.c @@ -2,31 +2,30 @@ #include "defs.h" - -fatal(msg) -char *msg; +void fatal(msg) + char *msg; { fprintf(stderr, "%s: f - %s\n", myname, msg); done(2); } -no_space() +void no_space() { fprintf(stderr, "%s: f - out of space\n", myname); done(2); } -open_error(filename) -char *filename; +void open_error(filename) + char *filename; { fprintf(stderr, "%s: f - cannot open \"%s\"\n", myname, filename); done(2); } -unexpected_EOF() +void unexpected_EOF() { fprintf(stderr, "%s: e - line %d of \"%s\", unexpected end-of-file\n", myname, lineno, input_file_name); @@ -34,9 +33,9 @@ unexpected_EOF() } -print_pos(st_line, st_cptr) -char *st_line; -char *st_cptr; +void print_pos(st_line, st_cptr) + char *st_line; + char *st_cptr; { register char *s; @@ -61,10 +60,10 @@ char *st_cptr; } -syntax_error(st_lineno, st_line, st_cptr) -int st_lineno; -char *st_line; -char *st_cptr; +void syntax_error(st_lineno, st_line, st_cptr) + int st_lineno; + char *st_line; + char *st_cptr; { fprintf(stderr, "%s: e - line %d of \"%s\", syntax error\n", myname, st_lineno, input_file_name); @@ -73,10 +72,10 @@ char *st_cptr; } -unterminated_comment(c_lineno, c_line, c_cptr) -int c_lineno; -char *c_line; -char *c_cptr; +void unterminated_comment(c_lineno, c_line, c_cptr) + int c_lineno; + char *c_line; + char *c_cptr; { fprintf(stderr, "%s: e - line %d of \"%s\", unmatched /*\n", myname, c_lineno, input_file_name); @@ -85,10 +84,10 @@ char *c_cptr; } -unterminated_string(s_lineno, s_line, s_cptr) -int s_lineno; -char *s_line; -char *s_cptr; +void unterminated_string(s_lineno, s_line, s_cptr) + int s_lineno; + char *s_line; + char *s_cptr; { fprintf(stderr, "%s: e - line %d of \"%s\", unterminated string\n", myname, s_lineno, input_file_name); @@ -97,10 +96,10 @@ char *s_cptr; } -unterminated_text(t_lineno, t_line, t_cptr) -int t_lineno; -char *t_line; -char *t_cptr; +void unterminated_text(t_lineno, t_line, t_cptr) + int t_lineno; + char *t_line; + char *t_cptr; { fprintf(stderr, "%s: e - line %d of \"%s\", unmatched %%{\n", myname, t_lineno, input_file_name); @@ -109,10 +108,10 @@ char *t_cptr; } -unterminated_union(u_lineno, u_line, u_cptr) -int u_lineno; -char *u_line; -char *u_cptr; +void unterminated_union(u_lineno, u_line, u_cptr) + int u_lineno; + char *u_line; + char *u_cptr; { fprintf(stderr, "%s: e - line %d of \"%s\", unterminated %%union \ declaration\n", myname, u_lineno, input_file_name); @@ -121,8 +120,8 @@ declaration\n", myname, u_lineno, input_file_name); } -over_unionized(u_cptr) -char *u_cptr; +void over_unionized(u_cptr) + char *u_cptr; { fprintf(stderr, "%s: e - line %d of \"%s\", too many %%union \ declarations\n", myname, lineno, input_file_name); @@ -131,10 +130,10 @@ declarations\n", myname, lineno, input_file_name); } -illegal_tag(t_lineno, t_line, t_cptr) -int t_lineno; -char *t_line; -char *t_cptr; +void illegal_tag(t_lineno, t_line, t_cptr) + int t_lineno; + char *t_line; + char *t_cptr; { fprintf(stderr, "%s: e - line %d of \"%s\", illegal tag\n", myname, t_lineno, input_file_name); @@ -143,8 +142,8 @@ char *t_cptr; } -illegal_character(c_cptr) -char *c_cptr; +void illegal_character(c_cptr) + char *c_cptr; { fprintf(stderr, "%s: e - line %d of \"%s\", illegal character\n", myname, lineno, input_file_name); @@ -153,8 +152,8 @@ char *c_cptr; } -used_reserved(s) -char *s; +void used_reserved(s) + char *s; { fprintf(stderr, "%s: e - line %d of \"%s\", illegal use of reserved symbol \ %s\n", myname, lineno, input_file_name, s); @@ -162,8 +161,8 @@ char *s; } -tokenized_start(s) -char *s; +void tokenized_start(s) + char *s; { fprintf(stderr, "%s: e - line %d of \"%s\", the start symbol %s cannot be \ declared to be a token\n", myname, lineno, input_file_name, s); @@ -171,39 +170,39 @@ declared to be a token\n", myname, lineno, input_file_name, s); } -retyped_warning(s) -char *s; +void retyped_warning(s) + char *s; { fprintf(stderr, "%s: w - line %d of \"%s\", the type of %s has been \ redeclared\n", myname, lineno, input_file_name, s); } -reprec_warning(s) -char *s; +void reprec_warning(s) + char *s; { fprintf(stderr, "%s: w - line %d of \"%s\", the precedence of %s has been \ redeclared\n", myname, lineno, input_file_name, s); } -revalued_warning(s) -char *s; +void revalued_warning(s) + char *s; { fprintf(stderr, "%s: w - line %d of \"%s\", the value of %s has been \ redeclared\n", myname, lineno, input_file_name, s); } -terminal_start(s) -char *s; +void terminal_start(s) + char *s; { fprintf(stderr, "%s: e - line %d of \"%s\", the entry point %s is a \ token\n", myname, lineno, input_file_name, s); done(1); } -too_many_entries() +void too_many_entries() { fprintf(stderr, "%s: e - line %d of \"%s\", more than 256 entry points\n", myname, lineno, input_file_name); @@ -211,7 +210,7 @@ too_many_entries() } -no_grammar() +void no_grammar() { fprintf(stderr, "%s: e - line %d of \"%s\", no grammar has been \ specified\n", myname, lineno, input_file_name); @@ -219,8 +218,8 @@ specified\n", myname, lineno, input_file_name); } -terminal_lhs(s_lineno) -int s_lineno; +void terminal_lhs(s_lineno) + int s_lineno; { fprintf(stderr, "%s: e - line %d of \"%s\", a token appears on the lhs \ of a production\n", myname, s_lineno, input_file_name); @@ -228,17 +227,17 @@ of a production\n", myname, s_lineno, input_file_name); } -prec_redeclared() +void prec_redeclared() { fprintf(stderr, "%s: w - line %d of \"%s\", conflicting %%prec \ specifiers\n", myname, lineno, input_file_name); } -unterminated_action(a_lineno, a_line, a_cptr) -int a_lineno; -char *a_line; -char *a_cptr; +void unterminated_action(a_lineno, a_line, a_cptr) + int a_lineno; + char *a_line; + char *a_cptr; { fprintf(stderr, "%s: e - line %d of \"%s\", unterminated action\n", myname, a_lineno, input_file_name); @@ -247,19 +246,19 @@ char *a_cptr; } -dollar_warning(a_lineno, i) -int a_lineno; -int i; +void dollar_warning(a_lineno, i) + int a_lineno; + int i; { fprintf(stderr, "%s: w - line %d of \"%s\", $%d references beyond the \ end of the current rule\n", myname, a_lineno, input_file_name, i); } -dollar_error(a_lineno, a_line, a_cptr) -int a_lineno; -char *a_line; -char *a_cptr; +void dollar_error(a_lineno, a_line, a_cptr) + int a_lineno; + char *a_line; + char *a_cptr; { fprintf(stderr, "%s: e - line %d of \"%s\", illegal $-name\n", myname, a_lineno, input_file_name); @@ -268,7 +267,7 @@ char *a_cptr; } -untyped_lhs() +void untyped_lhs() { fprintf(stderr, "%s: e - line %d of \"%s\", $$ is untyped\n", myname, lineno, input_file_name); @@ -276,9 +275,9 @@ untyped_lhs() } -untyped_rhs(i, s) -int i; -char *s; +void untyped_rhs(i, s) + int i; + char *s; { fprintf(stderr, "%s: e - line %d of \"%s\", $%d (%s) is untyped\n", myname, lineno, input_file_name, i, s); @@ -286,24 +285,24 @@ char *s; } -unknown_rhs(i) -int i; +void unknown_rhs(i) + int i; { fprintf(stderr, "%s: e - line %d of \"%s\", $%d is unbound\n", myname, lineno, input_file_name, i); done(1); } -illegal_token_ref(i, name) -int i; -char *name; +void illegal_token_ref(i, name) + int i; + char *name; { fprintf(stderr, "%s: e - line %d of \"%s\", $%d refers to terminal `%s', which has no argument\n", myname, lineno, input_file_name, i, name); done(1); } -default_action_error() +void default_action_error() { fprintf(stderr, "%s: e - line %d of \"%s\", no action specified for this production\n", myname, lineno, input_file_name); @@ -311,23 +310,23 @@ default_action_error() } -undefined_goal(s) -char *s; +void undefined_goal(s) + char *s; { fprintf(stderr, "%s: e - the start symbol %s is undefined\n", myname, s); done(1); } -undefined_symbol_warning(s) -char *s; +void undefined_symbol_warning(s) + char *s; { fprintf(stderr, "%s: w - the symbol %s is undefined\n", myname, s); } -entry_without_type(s) -char *s; +void entry_without_type(s) + char *s; { fprintf(stderr, "%s: e - no type has been declared for the start symbol %s\n", diff --git a/yacc/lalr.c b/yacc/lalr.c index 640ddc4ca..21322dd4b 100644 --- a/yacc/lalr.c +++ b/yacc/lalr.c @@ -34,7 +34,23 @@ static short *VERTICES; static int top; -lalr() + +void set_state_table (); +void set_accessing_symbol (); +void set_shift_table (); +void set_reduction_table (); +void set_maxrhs (); +void initialize_LA (); +void set_goto_map (); +void initialize_F (); +void build_relations (); +void compute_FOLLOWS (); +void compute_lookaheads (); +void digraph (); +void add_lookback_edge (); +void traverse (); + +void lalr() { tokensetsize = WORDSIZE(ntokens); @@ -53,7 +69,7 @@ lalr() -set_state_table() +void set_state_table() { register core *sp; @@ -64,7 +80,7 @@ set_state_table() -set_accessing_symbol() +void set_accessing_symbol() { register core *sp; @@ -75,7 +91,7 @@ set_accessing_symbol() -set_shift_table() +void set_shift_table() { register shifts *sp; @@ -86,7 +102,7 @@ set_shift_table() -set_reduction_table() +void set_reduction_table() { register reductions *rp; @@ -97,7 +113,7 @@ set_reduction_table() -set_maxrhs() +void set_maxrhs() { register short *itemp; register short *item_end; @@ -125,7 +141,7 @@ set_maxrhs() -initialize_LA() +void initialize_LA() { register int i, j, k; register reductions *rp; @@ -162,7 +178,7 @@ initialize_LA() } -set_goto_map() +void set_goto_map() { register shifts *sp; register int i; @@ -233,8 +249,8 @@ set_goto_map() int map_goto(state, symbol) -int state; -int symbol; + int state; + int symbol; { register int high; register int low; @@ -260,7 +276,7 @@ int symbol; -initialize_F() +void initialize_F() { register int i; register int j; @@ -337,7 +353,7 @@ initialize_F() -build_relations() +void build_relations() { register int i; register int j; @@ -429,8 +445,10 @@ build_relations() } -add_lookback_edge(stateno, ruleno, gotono) -int stateno, ruleno, gotono; +void add_lookback_edge(stateno, ruleno, gotono) + int stateno; + int ruleno; + int gotono; { register int i, k; register int found; @@ -458,8 +476,8 @@ int stateno, ruleno, gotono; short ** transpose(R, n) -short **R; -int n; + short int **R; + int n; { register short **new_R; register short **temp_R; @@ -514,13 +532,13 @@ int n; -compute_FOLLOWS() +void compute_FOLLOWS() { digraph(includes); } -compute_lookaheads() +void compute_lookaheads() { register int i, n; register unsigned *fp1, *fp2, *fp3; @@ -554,8 +572,8 @@ compute_lookaheads() } -digraph(relation) -short **relation; +void digraph(relation) + short int **relation; { register int i; @@ -581,8 +599,8 @@ short **relation; -traverse(i) -register int i; +void traverse(i) + register int i; { register unsigned *fp1; register unsigned *fp2; diff --git a/yacc/lr0.c b/yacc/lr0.c index 3ee42a884..6ea4e2b65 100644 --- a/yacc/lr0.c +++ b/yacc/lr0.c @@ -30,7 +30,15 @@ static short **kernel_end; static short *kernel_items; -allocate_itemsets() + +void initialize_states (); +void save_reductions (); +void new_itemsets (); +void save_shifts (); +void print_derives (); +void show_cores (), show_ritems (), show_rrhs (), show_shifts (); + +void allocate_itemsets() { register short *itemp; register short *item_end; @@ -72,7 +80,7 @@ allocate_itemsets() } -allocate_storage() +void allocate_storage() { allocate_itemsets(); shiftset = NEW2(nsyms, short); @@ -81,7 +89,7 @@ allocate_storage() } -append_states() +void append_states() { register int i; register int j; @@ -110,7 +118,7 @@ append_states() } -free_storage() +void free_storage() { FREE(shift_symbol); FREE(redset); @@ -123,7 +131,7 @@ free_storage() -generate_states() +void generate_states() { allocate_storage(); itemset = NEW2(nitems, short); @@ -152,7 +160,7 @@ generate_states() int get_state(symbol) -int symbol; + int symbol; { register int key; register short *isp1; @@ -215,7 +223,7 @@ int symbol; -initialize_states() +void initialize_states() { register int i; register short *start_derives; @@ -242,7 +250,7 @@ initialize_states() } -new_itemsets() +void new_itemsets() { register int i; register int shiftcount; @@ -280,7 +288,7 @@ new_itemsets() core * new_state(symbol) -int symbol; + int symbol; { register int n; register core *p; @@ -319,7 +327,7 @@ int symbol; /* show_cores is used for debugging */ -show_cores() +void show_cores() { core *p; int i, j, k, n; @@ -354,7 +362,7 @@ show_cores() /* show_ritems is used for debugging */ -show_ritems() +void show_ritems() { int i; @@ -364,7 +372,8 @@ show_ritems() /* show_rrhs is used for debugging */ -show_rrhs() + +void show_rrhs() { int i; @@ -375,7 +384,7 @@ show_rrhs() /* show_shifts is used for debugging */ -show_shifts() +void show_shifts() { shifts *p; int i, j, k; @@ -393,7 +402,7 @@ show_shifts() } -save_shifts() +void save_shifts() { register shifts *p; register short *sp1; @@ -427,7 +436,7 @@ save_shifts() -save_reductions() +void save_reductions() { register short *isp; register short *rp1; @@ -476,7 +485,7 @@ save_reductions() } -set_derives() +void set_derives() { register int i, k; register int lhs; @@ -506,14 +515,14 @@ set_derives() #endif } -free_derives() +void free_derives() { FREE(derives[start_symbol]); FREE(derives); } #ifdef DEBUG -print_derives() +void print_derives() { register int i; register short *sp; @@ -535,7 +544,7 @@ print_derives() #endif -set_nullable() +void set_nullable() { register int i, j; register int empty; @@ -584,13 +593,13 @@ set_nullable() } -free_nullable() +void free_nullable() { FREE(nullable); } -lr0() +void lr0() { set_derives(); set_nullable(); diff --git a/yacc/main.c b/yacc/main.c index c509386ea..98325d893 100644 --- a/yacc/main.c +++ b/yacc/main.c @@ -1,4 +1,5 @@ #include <signal.h> +#include <string.h> #include "defs.h" char dflag; @@ -73,8 +74,8 @@ extern char *mktemp(); extern char *getenv(); -done(k) -int k; +void done(k) + int k; { if (action_file) { fclose(action_file); unlink(action_file_name); } if (entry_file) { fclose(entry_file); unlink(entry_file_name); } @@ -91,13 +92,13 @@ int k; void onintr(dummy) - int dummy; + int dummy; { done(1); } -set_signals() +void set_signals() { #ifdef SIGINT if (signal(SIGINT, SIG_IGN) != SIG_IGN) @@ -114,16 +115,16 @@ set_signals() } -usage() +void usage() { fprintf(stderr, "usage: %s [-vs] [-b file_prefix] filename\n", myname); exit(1); } -getargs(argc, argv) -int argc; -char *argv[]; +void getargs(argc, argv) + int argc; + char **argv; { register int i; register char *s; @@ -209,7 +210,7 @@ no_more_options:; char * allocate(n) -unsigned n; + unsigned int n; { register char *p; @@ -223,7 +224,7 @@ unsigned n; } -create_file_names() +void create_file_names() { int i, len; char *tmpdir; @@ -310,7 +311,7 @@ create_file_names() } -open_files() +void open_files() { create_file_names(); @@ -370,9 +371,9 @@ open_files() } -main(argc, argv) -int argc; -char *argv[]; +void main(argc, argv) + int argc; + char **argv; { set_signals(); getargs(argc, argv); diff --git a/yacc/mkpar.c b/yacc/mkpar.c index e1aef60fe..4ba590b0d 100644 --- a/yacc/mkpar.c +++ b/yacc/mkpar.c @@ -14,13 +14,13 @@ short final_state; static int SRcount; static int RRcount; -extern action *parse_actions(); -extern action *get_shifts(); -extern action *add_reductions(); -extern action *add_reduce(); +void find_final_state (); +void remove_conflicts (); +void unused_rules (); +void total_conflicts (); +void defreds (); - -make_parser() +void make_parser() { register int i; @@ -38,7 +38,7 @@ make_parser() action * parse_actions(stateno) -register int stateno; + register int stateno; { register action *actions; @@ -50,7 +50,7 @@ register int stateno; action * get_shifts(stateno) -int stateno; + int stateno; { register action *actions, *temp; register shifts *sp; @@ -85,8 +85,8 @@ int stateno; action * add_reductions(stateno, actions) -int stateno; -register action *actions; + int stateno; + register action *actions; { register int i, j, m, n; register int ruleno, tokensetsize; @@ -111,8 +111,9 @@ register action *actions; action * add_reduce(actions, ruleno, symbol) -register action *actions; -register int ruleno, symbol; + register action *actions; + register int ruleno; + register int symbol; { register action *temp, *prev, *next; @@ -150,7 +151,7 @@ register int ruleno, symbol; } -find_final_state() +void find_final_state() { register int goal, i; register short *to_state; @@ -167,7 +168,7 @@ find_final_state() } -unused_rules() +void unused_rules() { register int i; register action *p; @@ -199,7 +200,7 @@ unused_rules() } -remove_conflicts() +void remove_conflicts() { register int i; register int symbol; @@ -274,7 +275,7 @@ remove_conflicts() } -total_conflicts() +void total_conflicts() { fprintf(stderr, "%s: ", myname); if (SRtotal == 1) @@ -296,7 +297,7 @@ total_conflicts() int sole_reduction(stateno) -int stateno; + int stateno; { register int count, ruleno; register action *p; @@ -323,7 +324,7 @@ int stateno; } -defreds() +void defreds() { register int i; @@ -332,8 +333,8 @@ defreds() defred[i] = sole_reduction(i); } -free_action_row(p) -register action *p; +void free_action_row(p) + register action *p; { register action *q; @@ -345,7 +346,7 @@ register action *p; } } -free_parser() +void free_parser() { register int i; diff --git a/yacc/output.c b/yacc/output.c index 83caa905f..30353f93d 100644 --- a/yacc/output.c +++ b/yacc/output.c @@ -17,7 +17,32 @@ static int lowzero; static int high; -output() +void free_itemsets (); +void free_shifts (); +void free_reductions (); +void output_stored_text (); +void output_transl (); +void output_rule_data (); +void output_yydefred (); +void output_actions (); +void output_debug (); +void output_trailing_text (); +void output_semantic_actions (); +void output_entries (); +void token_actions (); +void goto_actions (); +void sort_actions (); +void pack_table (); +void output_base (); +void output_table (); +void output_check (); +int default_goto (); +void save_column (); +int matching_vector (); +int pack_vector (); + + +void output() { extern char *header[], *define_tables[]; @@ -49,7 +74,7 @@ output() static void output_char(n) - unsigned n; + unsigned int n; { n = n & 0xFF; putc('\\', output_file); @@ -59,13 +84,13 @@ static void output_char(n) } static void output_short(n) - int n; + int n; { output_char(n); output_char(n >> 8); } -output_rule_data() +void output_rule_data() { register int i; register int j; @@ -113,7 +138,7 @@ output_rule_data() } -output_yydefred() +void output_yydefred() { register int i, j; @@ -140,7 +165,7 @@ output_yydefred() } -output_actions() +void output_actions() { nvectors = 2*nstates + nvars; @@ -168,7 +193,7 @@ output_actions() } -token_actions() +void token_actions() { register int i, j; register int shiftcount, reducecount; @@ -252,7 +277,7 @@ token_actions() FREE(actionrow); } -goto_actions() +void goto_actions() { register int i, j, k; @@ -288,7 +313,7 @@ goto_actions() int default_goto(symbol) -int symbol; + int symbol; { register int i; register int m; @@ -323,9 +348,9 @@ int symbol; -save_column(symbol, default_state) -int symbol; -int default_state; +void save_column(symbol, default_state) + int symbol; + int default_state; { register int i; register int m; @@ -365,7 +390,7 @@ int default_state; width[symno] = sp1[-1] - sp[0] + 1; } -sort_actions() +void sort_actions() { register int i; register int j; @@ -400,7 +425,7 @@ sort_actions() } -pack_table() +void pack_table() { register int i; register int place; @@ -464,7 +489,7 @@ pack_table() int matching_vector(vector) -int vector; + int vector; { register int i; register int j; @@ -505,7 +530,7 @@ int vector; int pack_vector(vector) -int vector; + int vector; { register int i, j, k, l; register int t; @@ -581,7 +606,7 @@ int vector; -output_base() +void output_base() { register int i, j; @@ -652,7 +677,7 @@ output_base() -output_table() +void output_table() { register int i; register int j; @@ -684,7 +709,7 @@ output_table() -output_check() +void output_check() { register int i; register int j; @@ -713,7 +738,7 @@ output_check() } -output_transl() +void output_transl() { int i; @@ -733,7 +758,7 @@ output_transl() fprintf(code_file, " 0|]\n\n"); } -output_stored_text() +void output_stored_text() { register int c; register FILE *in, *out; @@ -760,11 +785,11 @@ output_stored_text() } -output_debug() +void output_debug() { } -output_trailing_text() +void output_trailing_text() { register int c, last; register FILE *in, *out; @@ -821,9 +846,9 @@ output_trailing_text() } -copy_file(file, file_name) - FILE ** file; - char * file_name; +void copy_file(file, file_name) + FILE **file; + char *file_name; { register int c, last; register FILE *out; @@ -857,17 +882,17 @@ copy_file(file, file_name) } -output_semantic_actions() +void output_semantic_actions() { copy_file (&action_file, action_file_name); } -output_entries() +void output_entries() { copy_file (&entry_file, entry_file_name); } -free_itemsets() +void free_itemsets() { register core *cp, *next; @@ -880,7 +905,7 @@ free_itemsets() } -free_shifts() +void free_shifts() { register shifts *sp, *next; @@ -894,7 +919,7 @@ free_shifts() -free_reductions() +void free_reductions() { register reductions *rp, *next; diff --git a/yacc/parsing.c b/yacc/parsing.c deleted file mode 100644 index 1b6099322..000000000 --- a/yacc/parsing.c +++ /dev/null @@ -1,136 +0,0 @@ -int yydebug; -int yynerrs; -int yyerrflag; -int yychar; -short *yyssp; -YYSTYPE *yyvsp; -YYSTYPE yyval; -YYSTYPE yylval; -short yyss[YYSTACKSIZE]; -YYSTYPE yyvs[YYSTACKSIZE]; -#define yystacksize YYSTACKSIZE -#define YYABORT goto yyabort -#define YYACCEPT goto yyaccept -#define YYERROR goto yyerrlab - -value yyparse(tables, entrypoint, lexbuf) - value tables, entrypoint, lexbuf; -{ - register int yym, yyn, yystate; - -#define yyact FIELD(tables,0) -#define yytransl FIELD(tables,1) -#define yylhs FIELD(tables, 2) -#define yylen FIELD(tables, 3) -#define yydefred FIELD(tables, 4) -#define yydgoto FIELD(tables, 5) -#define yysindex FIELD(tables, 6) -#define yyrindex FIELD(tables, 7) -#define yygindex FIELD(tables, 8) -#define YYTABLESIZE CINT(FIELD(tables, 9)) -#define yytable FIELD(tables, 10) -#define yycheck FIELD(tables, 11) - - yynerrs = 0; - yyerrflag = 0; - yychar = (-1); - - yyssp = yyss; - yyvsp = yyvs; - *yyssp = yystate = 0; - - yychar = CINT(entrypoint); - -yyloop: - if (yyn = yydefred[yystate]) goto yyreduce; - if (yychar < 0) { - token = yylex(lexbuf); - yychar = CINT(yytransl[TAG(token)]); - yylval = FIELD(token, 0); - } - if ((yyn = CINT(yysindex[yystate])) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && CINT(yycheck[yyn]) == yychar) - { - if (yyssp >= yyss + yystacksize - 1) grow_stacks(); - - *++yyssp = yystate = CINT(yytable[yyn]); - *++yyvsp = yylval; - yychar = (-1); - if (yyerrflag > 0) --yyerrflag; - goto yyloop; - } - if ((yyn = CINT(yyrindex[yystate])) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && CINT(yycheck[yyn]) == yychar) - { - yyn = yytable[yyn]; - goto yyreduce; - } - if (yyerrflag) goto yyinrecovery; - -yynewerror: - v = alloc(1, EXN_PARSING); - FIELD(v, 0) = MLINT(yychar); - mlraise(v); - -yyerrlab: - ++yynerrs; - -yyinrecovery: - if (yyerrflag < 3) - { - yyerrflag = 3; - for (;;) - { - if ((yyn = CINT(yysindex[*yyssp])) && (yyn += YYERRCODE) >= 0 && - yyn <= YYTABLESIZE && CINT(yycheck[yyn]) == YYERRCODE) - { - if (yyssp >= yyss + yystacksize - 1) grow_stacks(); - - *++yyssp = yystate = yytable[yyn]; - *++yyvsp = yylval; - goto yyloop; - } - else - { - if (yyssp <= yyss) goto yyabort; - --yyssp; - --yyvsp; - } - } - } - else - { - if (yychar == 0) goto yyabort; - yychar = (-1); - goto yyloop; - } - -yyreduce: - yym = yylen[yyn]; - yyval = mlapply(FIELD(yyact, yyn), atom(0)); - yyssp -= yym; - yystate = *yyssp; - yyvsp -= yym; - yym = yylhs[yyn]; - if (yystate == 0 && yym == 0) - { - yystate = YYFINAL; - *++yyssp = YYFINAL; - *++yyvsp = yyval; - if (yychar < 0) - { - if ((yychar = yylex()) < 0) yychar = 0; - } - if (yychar == 0) goto yyaccept; - goto yyloop; - } - if ((yyn = CINT(yygindex[yym])) && (yyn += yystate) >= 0 && - yyn <= YYTABLESIZE && CINT(yycheck[yyn]) == yystate) - yystate = CINT(yytable[yyn]); - else - yystate = CINT(yydgoto[yym]); - if (yyssp >= yyss + yystacksize - 1) grow_stacks(); - *++yyssp = yystate; - *++yyvsp = yyval; - goto yyloop; -} diff --git a/yacc/reader.c b/yacc/reader.c index f821589fb..085ecb7c3 100644 --- a/yacc/reader.c +++ b/yacc/reader.c @@ -1,3 +1,4 @@ +#include <string.h> #include "defs.h" /* The line size must be a positive integer. One hundred was chosen */ @@ -34,8 +35,11 @@ char *name_pool; char line_format[] = "(* Line %d, file %s *)\n"; -cachec(c) -int c; + +void start_rule (); + +void cachec(c) + int c; { assert(cinc >= 0); if (cinc >= cache_size) @@ -49,7 +53,7 @@ int c; } -get_line() +void get_line() { register FILE *f = input_file; register int c; @@ -113,7 +117,7 @@ dup_line() } -skip_comment() +void skip_comment() { register char *s; @@ -265,10 +269,11 @@ keyword() } syntax_error(lineno, line, t_cptr); /*NOTREACHED*/ + return 0; } -copy_ident() +void copy_ident() { register int c; register FILE *f = output_file; @@ -297,7 +302,7 @@ copy_ident() } -copy_text() +void copy_text() { register int c; int quote; @@ -319,7 +324,6 @@ loop: switch (c) { case '\n': - next_line: putc('\n', f); need_newline = 0; get_line(); @@ -414,7 +418,7 @@ loop: } -copy_union() +void copy_union() { register int c; int quote; @@ -442,7 +446,6 @@ loop: switch (c) { case '\n': - next_line: get_line(); if (line == 0) unterminated_union(u_lineno, u_line, u_cptr); goto loop; @@ -537,7 +540,7 @@ loop: int hexval(c) -int c; + int c; { if (c >= '0' && c <= '9') return (c - '0'); @@ -690,7 +693,7 @@ get_literal() int is_reserved(name) -char *name; + char *name; { char *s; @@ -746,9 +749,7 @@ get_tag() register int c; register int i; register char *s; - int t_lineno = lineno; char *t_line = dup_line(); - char *t_cptr = t_line + (cptr - line); cinc = 0; while (1) { @@ -785,8 +786,8 @@ get_tag() } -declare_tokens(assoc) -int assoc; +void declare_tokens(assoc) + int assoc; { register int c; register bucket *bp; @@ -852,7 +853,7 @@ int assoc; } -declare_types() +void declare_types() { register int c; register bucket *bp; @@ -880,7 +881,7 @@ declare_types() } -declare_start() +void declare_start() { register int c; register bucket *bp; @@ -900,7 +901,7 @@ declare_start() } -read_declarations() +void read_declarations() { register int c, k; @@ -948,7 +949,7 @@ read_declarations() } } -output_token_type() +void output_token_type() { bucket * bp; int n; @@ -975,7 +976,7 @@ output_token_type() fprintf(output_file, "\n"); } -initialize_grammar() +void initialize_grammar() { nitems = 4; maxitems = 300; @@ -1006,7 +1007,7 @@ initialize_grammar() } -expand_items() +void expand_items() { maxitems += 300; pitem = (bucket **) REALLOC(pitem, maxitems*sizeof(bucket *)); @@ -1014,7 +1015,7 @@ expand_items() } -expand_rules() +void expand_rules() { maxrules += 100; plhs = (bucket **) REALLOC(plhs, maxrules*sizeof(bucket *)); @@ -1026,7 +1027,7 @@ expand_rules() } -advance_to_start() +void advance_to_start() { register int c; register bucket *bp; @@ -1076,9 +1077,9 @@ advance_to_start() } -start_rule(bp, s_lineno) -register bucket *bp; -int s_lineno; +void start_rule(bp, s_lineno) + register bucket *bp; + int s_lineno; { if (bp->class == TERM) terminal_lhs(s_lineno); @@ -1091,7 +1092,7 @@ int s_lineno; } -end_rule() +void end_rule() { if (!last_was_action) default_action_error(); @@ -1103,7 +1104,7 @@ end_rule() } -insert_empty_rule() +void insert_empty_rule() { register bucket *bp, **bpp; @@ -1119,7 +1120,7 @@ insert_empty_rule() expand_items(); bpp = pitem + nitems - 1; *bpp-- = bp; - while (bpp[0] = bpp[-1]) --bpp; + while ((bpp[0] = bpp[-1])) --bpp; if (++nrules >= maxrules) expand_rules(); @@ -1132,7 +1133,7 @@ insert_empty_rule() } -add_symbol() +void add_symbol() { register int c; register bucket *bp; @@ -1163,7 +1164,7 @@ add_symbol() } -copy_action() +void copy_action() { register int c; register int i, n; @@ -1246,7 +1247,6 @@ loop: switch (c) { case '\n': - next_line: get_line(); if (line) goto loop; unterminated_action(a_lineno, a_line, a_cptr); @@ -1373,7 +1373,7 @@ mark_symbol() } -read_grammar() +void read_grammar() { register int c; @@ -1406,7 +1406,7 @@ read_grammar() } -free_tags() +void free_tags() { register int i; @@ -1421,7 +1421,7 @@ free_tags() } -pack_names() +void pack_names() { register bucket *bp; register char *p, *s, *t; @@ -1439,14 +1439,14 @@ pack_names() { p = t; s = bp->name; - while (*t++ = *s++) continue; + while ((*t++ = *s++)) continue; FREE(bp->name); bp->name = p; } } -check_symbols() +void check_symbols() { register bucket *bp; @@ -1464,7 +1464,7 @@ check_symbols() } -pack_symbols() +void pack_symbols() { register bucket *bp; register bucket **v; @@ -1600,7 +1600,7 @@ pack_symbols() } -make_goal() +void make_goal() { static char name[7] = "'\\xxx'"; bucket * bp; @@ -1646,7 +1646,7 @@ make_goal() } } -pack_grammar() +void pack_grammar() { register int i, j; int assoc, prec; @@ -1705,7 +1705,7 @@ pack_grammar() } -print_grammar() +void print_grammar() { register int i, j, k; int spacing; @@ -1741,7 +1741,7 @@ print_grammar() } -reader() +void reader() { create_symbol_table(); read_declarations(); diff --git a/yacc/skeleton.c b/yacc/skeleton.c index e7149dc05..4dd090485 100644 --- a/yacc/skeleton.c +++ b/yacc/skeleton.c @@ -25,8 +25,8 @@ char *define_tables[] = 0 }; -write_section(section) -char *section[]; +void write_section(section) + char **section; { register int i; register FILE *fp; diff --git a/yacc/symtab.c b/yacc/symtab.c index 91e6bf100..4f52acf47 100644 --- a/yacc/symtab.c +++ b/yacc/symtab.c @@ -1,3 +1,4 @@ +#include <string.h> #include "defs.h" @@ -8,7 +9,7 @@ bucket *last_symbol; int hash(name) -char *name; + char *name; { register char *s; register int c, k; @@ -16,7 +17,7 @@ char *name; assert(name && *name); s = name; k = *s; - while (c = *++s) + while ((c = *++s)) k = (31*k + c) & (TABLE_SIZE - 1); return (k); @@ -25,7 +26,7 @@ char *name; bucket * make_bucket(name) -char *name; + char *name; { register bucket *bp; @@ -54,7 +55,7 @@ char *name; bucket * lookup(name) -char *name; + char *name; { register bucket *bp, **bpp; @@ -76,7 +77,7 @@ char *name; } -create_symbol_table() +void create_symbol_table() { register int i; register bucket *bp; @@ -96,14 +97,14 @@ create_symbol_table() } -free_symbol_table() +void free_symbol_table() { FREE(symbol_table); symbol_table = 0; } -free_symbols() +void free_symbols() { register bucket *p, *q; diff --git a/yacc/verbose.c b/yacc/verbose.c index 2c7cc52c7..392b5e152 100644 --- a/yacc/verbose.c +++ b/yacc/verbose.c @@ -4,7 +4,19 @@ static short *null_rules; -verbose() + +void print_state (); +void log_unused (); +void log_conflicts (); +void print_conflicts (); +void print_core (); +void print_nulls (); +void print_actions (); +void print_shifts (); +void print_reductions (); +void print_gotos (); + +void verbose() { register int i; @@ -28,7 +40,7 @@ verbose() } -log_unused() +void log_unused() { register int i; register short *p; @@ -47,7 +59,7 @@ log_unused() } -log_conflicts() +void log_conflicts() { register int i; @@ -75,8 +87,8 @@ log_conflicts() } -print_state(state) -int state; +void print_state(state) + int state; { if (state) fprintf(verbose_file, "\n\n"); @@ -89,8 +101,8 @@ int state; } -print_conflicts(state) -int state; +void print_conflicts(state) + int state; { register int symbol, act, number; register action *p; @@ -137,8 +149,8 @@ int state; } -print_core(state) -int state; +void print_core(state) + int state; { register int i; register int k; @@ -173,8 +185,8 @@ int state; } -print_nulls(state) -int state; +void print_nulls(state) + int state; { register action *p; register int i, j, k, nnulls; @@ -217,8 +229,8 @@ int state; } -print_actions(stateno) -int stateno; +void print_actions(stateno) + int stateno; { register action *p; register shifts *sp; @@ -244,8 +256,8 @@ int stateno; } -print_shifts(p) -register action *p; +void print_shifts(p) + register action *p; { register int count; register action *q; @@ -269,9 +281,9 @@ register action *p; } -print_reductions(p, defred) -register action *p; -register int defred; +void print_reductions(p, defred) + register action *p; + register int defred; { register int k, anyreds; register action *q; @@ -307,8 +319,8 @@ register int defred; } -print_gotos(stateno) -int stateno; +void print_gotos(stateno) + int stateno; { register int i, k; register int as; diff --git a/yacc/warshall.c b/yacc/warshall.c index 4d22ad741..d3a1f5732 100644 --- a/yacc/warshall.c +++ b/yacc/warshall.c @@ -1,8 +1,8 @@ #include "defs.h" -transitive_closure(R, n) -unsigned *R; -int n; +void transitive_closure(R, n) + unsigned int *R; + int n; { register int rowsize; register unsigned mask; @@ -53,9 +53,9 @@ int n; } } -reflexive_transitive_closure(R, n) -unsigned *R; -int n; +void reflexive_transitive_closure(R, n) + unsigned int *R; + int n; { register int rowsize; register unsigned mask; |