#ifndef READER_H_
# define READER_H_
-# include "location.h"
-
-typedef struct symbol_list
-{
- struct symbol_list *next;
- symbol_t *sym;
- location_t location;
-
- /* The action is attached to the LHS of a rule. */
- const char *action;
- location_t action_location;
-
- symbol_t *ruleprec;
-} symbol_list;
-
+# include "symlist.h"
# include "parse-gram.h"
typedef struct gram_control_s
location_t *loc, const char *msg);
int gram_parse (void *control);
-char *get_type_name PARAMS ((int n, symbol_list *rule));
-extern int typed;
+/* The sort of braced code we are in. */
+typedef enum braced_code_e
+ {
+ action_braced_code,
+ destructor_braced_code
+ } braced_code_t;
+/* FIXME: This is really a dirty hack which demonstrates that we
+ should probably not try to parse the actions now. */
+extern braced_code_t current_braced_code;
+
/* From reader.c. */
void grammar_start_symbol_set PARAMS ((symbol_t *s, location_t l));
location_t l));
void grammar_current_rule_action_append PARAMS ((const char *action,
location_t l));
-extern symbol_list *current_rule;
+extern symbol_list_t *current_rule;
void reader PARAMS ((void));
+extern int typed;
#endif /* !READER_H_ */