]> git.saurik.com Git - bison.git/blobdiff - src/reader.h
* data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
[bison.git] / src / reader.h
index 70740409271bdd8e4da49deac5ed1c63b3cd0edc..e40cafc27ca34ad1d9d990e6016dc000bbcc1100 100644 (file)
 #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
@@ -62,8 +48,16 @@ void gram_error (gram_control_t *control,
                 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));
@@ -78,7 +72,8 @@ void grammar_current_rule_symbol_append PARAMS ((symbol_t *symbol,
                                                 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_ */