(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>
+
+ * 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>
* src/gram.h (rule_s): prec and precsym are now pointers
2002-04-07 Akim Demaille <akim@epita.fr>
* src/gram.h (rule_s): prec and precsym are now pointers
/* comments for these variables are in gram.h */
/* 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;
rule_t *rules = NULL;
struct bucket **symbols = NULL;
short *token_translations = NULL;
rule_t *rules = NULL;
struct bucket **symbols = NULL;
short *token_translations = NULL;
-int max_user_token_number;
+int max_user_token_number = 256;
+int semantic_parser = 0;
+int error_token_number = 0;
/*--------------------------------------.
/*--------------------------------------.
} symbol_list;
int lineno;
} 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. */
/* Nonzero if components of semantic values are used, implying
they must be unions. */
static int value_components_used;
/* Nonzero if %union has been seen. */
/* Incremented for each %left, %right or %nonassoc seen */
/* Incremented for each %left, %right or %nonassoc seen */
+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)
static symbol_list *
symbol_list_new (bucket *sym)
- 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;
-
#ifndef READER_H_
# define READER_H_
#ifndef READER_H_
# define READER_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
/* 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
+extern bucket *errtoken;
+extern bucket *undeftoken;
+extern bucket *eoftoken;
+extern bucket *axiom;
+