]> git.saurik.com Git - bison.git/blobdiff - src/gram.h
* tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
[bison.git] / src / gram.h
index f143b4ee50e6872c85ef8156d8a572a1900568fa..0a92993c265a3cdc3c4a1cb9b7093ceda1b2af07 100644 (file)
@@ -47,7 +47,7 @@
    Therefore 0 cannot be used, since it would be both the rule number
    0, and the token EOF).
 
-   Actions and guards are accessed via the rule number.
+   Actions are accessed via the rule number.
 
    The rules themselves are described by several arrays: amongst which
    RITEM, and RULES.
    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.
@@ -112,7 +110,7 @@ extern int nvars;
 #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
@@ -150,9 +148,6 @@ typedef struct rule_s
 
   const char *action;
   int action_line;
-
-  const char *guard;
-  int guard_line;
 } rule_t;
 
 extern struct rule_s *rules;
@@ -166,11 +161,6 @@ extern symbol_t **symbols;
 extern token_number_t *token_translations;
 extern int max_user_token_number;
 
-/* SEMANTIC_PARSER is nonzero if the input file says to use the hairy
-   parser that provides for semantic error recovery.  If it is zero,
-   the yacc-compatible simplified parser is used.  */
-
-extern int semantic_parser;
 
 /* PURE_PARSER is nonzero if should generate a parser that is all pure
    and reentrant.  */
@@ -189,4 +179,7 @@ size_t ritem_longest_rhs PARAMS ((void));
 /* Dump the grammar. */
 void grammar_dump PARAMS ((FILE *out, const char *title));
 
+/* Free the packed grammar. */
+void grammar_free PARAMS ((void));
+
 #endif /* !GRAM_H_ */