]> git.saurik.com Git - bison.git/blobdiff - src/gram.h
Regen.
[bison.git] / src / gram.h
index d7b9df4e5da9e7fc8adf69484023f5b0ccedb905..f143b4ee50e6872c85ef8156d8a572a1900568fa 100644 (file)
@@ -114,7 +114,16 @@ typedef int item_number_t;
 extern item_number_t *ritem;
 extern int nritems;
 
-extern int start_symbol;
+/* There is weird relationship between item_number_t and
+   token_number_t: we store token_number_t in item_number_t, but in
+   the latter we also store, as negative numbers, the rule numbers.
+
+   Therefore, an token_number_t must be a valid item_number_t, and we
+   sometimes have to perform the converse transformation.  */
+#define token_number_as_item_number(Tok) ((item_number_t) (Tok))
+#define item_number_as_token_number(Ite) ((token_number_t) (Ite))
+
+extern token_number_t start_symbol;
 
 
 typedef struct rule_s
@@ -177,4 +186,7 @@ void ritem_print PARAMS ((FILE *out));
 /* Return the size of the longest rule RHS.  */
 size_t ritem_longest_rhs PARAMS ((void));
 
+/* Dump the grammar. */
+void grammar_dump PARAMS ((FILE *out, const char *title));
+
 #endif /* !GRAM_H_ */