* 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.
This commit is contained in:
Akim Demaille
2002-04-07 17:42:49 +00:00
parent 03b31c0ce8
commit 280a38c306
4 changed files with 37 additions and 36 deletions

View File

@@ -1,3 +1,13 @@
2002-04-07 Akim Demaille <akim@epita.fr>
* 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 <akim@epita.fr> 2002-04-07 Akim Demaille <akim@epita.fr>
* src/gram.h (rule_s): prec and precsym are now pointers * src/gram.h (rule_s): prec and precsym are now pointers

View File

@@ -27,29 +27,29 @@
/* comments for these variables are in gram.h */ /* comments for these variables are in gram.h */
int nitems; int nitems = 0;
int nrules; int nrules = 0;
int nsyms; int nsyms = 0;
int ntokens; int ntokens = 0;
int nvars; int nvars = 0;
short *ritem = NULL; short *ritem = NULL;
int nritems; int nritems = 0;
rule_t *rules = NULL; rule_t *rules = NULL;
struct bucket **symbols = NULL; struct bucket **symbols = NULL;
short *token_translations = 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;
/*--------------------------------------. /*--------------------------------------.

View File

@@ -52,24 +52,24 @@ typedef struct symbol_list
} symbol_list; } symbol_list;
int lineno; int lineno;
static symbol_list *grammar; static symbol_list *grammar = NULL;
static int start_flag; static int start_flag = 0;
static bucket *startval; static bucket *startval = NULL;
/* Nonzero if components of semantic values are used, implying /* Nonzero if components of semantic values are used, implying
they must be unions. */ they must be unions. */
static int value_components_used; static int value_components_used;
/* Nonzero if %union has been seen. */ /* Nonzero if %union has been seen. */
static int typed; static int typed = 0;
/* Incremented for each %left, %right or %nonassoc seen */ /* Incremented for each %left, %right or %nonassoc seen */
static int lastprec; static int lastprec = 0;
static bucket *errtoken = NULL; bucket *errtoken = NULL;
static bucket *undeftoken = NULL; bucket *undeftoken = NULL;
static bucket *eoftoken = NULL; bucket *eoftoken = NULL;
static bucket *axiom = NULL; bucket *axiom = NULL;
static symbol_list * static symbol_list *
symbol_list_new (bucket *sym) symbol_list_new (bucket *sym)
@@ -1743,22 +1743,6 @@ packgram (void)
void void
reader (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 (); lex_init ();
lineno = 1; lineno = 1;

View File

@@ -21,6 +21,8 @@
#ifndef READER_H_ #ifndef READER_H_
# define READER_H_ # define READER_H_
#include "symtab.h"
/* Read in the grammar specification and record it in the format /* Read in the grammar specification and record it in the format
described in gram.h. All guards are copied into the FGUARD file 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 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 int lineno;
extern bucket *errtoken;
extern bucket *undeftoken;
extern bucket *eoftoken;
extern bucket *axiom;
#endif /* !READER_H_ */ #endif /* !READER_H_ */