contains minus R, which identifies it as the end of a portion and
says which rule it is for.
- The portions of RITEM come in order of increasing rule number and
- are followed by an element which is zero to mark the end. nritems
- is the total length of ritem, not counting the final zero. Each
- element of RITEM is called an "item" and its index in RITEM is an
- item number.
+ The portions of RITEM come in order of increasing rule number.
+ NRITEMS is the total length of RITEM. Each element of RITEM is
+ called an "item" and its index in RITEM is an item number.
Item numbers are used in the finite state machine to represent
places that parsing can get to.
#define ITEM_NUMBER_MAX INT_MAX
typedef int item_number_t;
extern item_number_t *ritem;
-extern int nritems;
+extern unsigned int nritems;
/* There is weird relationship between item_number_t and
token_number_t: we store token_number_t in item_number_t, but in
/* Dump the grammar. */
void grammar_dump PARAMS ((FILE *out, const char *title));
+/* Free the packed grammar. */
+void grammar_free PARAMS ((void));
+
#endif /* !GRAM_H_ */