From 280a38c306200177ef15e0f52775312edc057065 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Sun, 7 Apr 2002 17:42:49 +0000 Subject: [PATCH] * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems) (start_symbol, max_user_token_number, semantic_parser) (error_token_number): Initialize. * src/reader.c (grammar, start_flag, startval, typed, lastprec): Initialize. (reader): Don't. (errtoken, eoftoken, undeftoken, axiom): Extern. --- ChangeLog | 10 ++++++++++ src/gram.c | 22 +++++++++++----------- src/reader.c | 34 +++++++++------------------------- src/reader.h | 7 +++++++ 4 files changed, 37 insertions(+), 36 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3dbfb57e..69404a29 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2002-04-07 Akim Demaille + + * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems) + (start_symbol, max_user_token_number, semantic_parser) + (error_token_number): Initialize. + * src/reader.c (grammar, start_flag, startval, typed, lastprec): + Initialize. + (reader): Don't. + (errtoken, eoftoken, undeftoken, axiom): Extern. + 2002-04-07 Akim Demaille * src/gram.h (rule_s): prec and precsym are now pointers diff --git a/src/gram.c b/src/gram.c index 9f5521ae..acb58693 100644 --- a/src/gram.c +++ b/src/gram.c @@ -27,29 +27,29 @@ /* comments for these variables are in gram.h */ -int nitems; -int nrules; -int nsyms; -int ntokens; -int nvars; +int nitems = 0; +int nrules = 0; +int nsyms = 0; +int ntokens = 0; +int nvars = 0; short *ritem = NULL; -int nritems; +int nritems = 0; rule_t *rules = NULL; struct bucket **symbols = NULL; short *token_translations = NULL; -int start_symbol; +int start_symbol = 0; -int max_user_token_number; +int max_user_token_number = 256; -int semantic_parser; +int semantic_parser = 0; -int pure_parser; +int pure_parser = 0; -int error_token_number; +int error_token_number = 0; /*--------------------------------------. diff --git a/src/reader.c b/src/reader.c index 01b5940c..c53ab212 100644 --- a/src/reader.c +++ b/src/reader.c @@ -52,24 +52,24 @@ typedef struct symbol_list } symbol_list; int lineno; -static symbol_list *grammar; -static int start_flag; -static bucket *startval; +static symbol_list *grammar = NULL; +static int start_flag = 0; +static bucket *startval = NULL; /* Nonzero if components of semantic values are used, implying they must be unions. */ static int value_components_used; /* Nonzero if %union has been seen. */ -static int typed; +static int typed = 0; /* Incremented for each %left, %right or %nonassoc seen */ -static int lastprec; +static int lastprec = 0; -static bucket *errtoken = NULL; -static bucket *undeftoken = NULL; -static bucket *eoftoken = NULL; -static bucket *axiom = NULL; +bucket *errtoken = NULL; +bucket *undeftoken = NULL; +bucket *eoftoken = NULL; +bucket *axiom = NULL; static symbol_list * symbol_list_new (bucket *sym) @@ -1743,22 +1743,6 @@ packgram (void) void reader (void) { - start_flag = 0; - startval = NULL; /* start symbol not specified yet. */ - - nsyms = 0; - nvars = 0; - nrules = 0; - nitems = 0; - - typed = 0; - lastprec = 0; - - semantic_parser = 0; - pure_parser = 0; - - grammar = NULL; - lex_init (); lineno = 1; diff --git a/src/reader.h b/src/reader.h index 32f02e96..abff0d38 100644 --- a/src/reader.h +++ b/src/reader.h @@ -21,6 +21,8 @@ #ifndef READER_H_ # define READER_H_ +#include "symtab.h" + /* Read in the grammar specification and record it in the format described in gram.h. All guards are copied into the FGUARD file and all actions into FACTION, in each case forming the body of a C @@ -34,4 +36,9 @@ void grammar_free PARAMS ((void)); extern int lineno; +extern bucket *errtoken; +extern bucket *undeftoken; +extern bucket *eoftoken; +extern bucket *axiom; + #endif /* !READER_H_ */ -- 2.47.2