]> git.saurik.com Git - bison.git/blobdiff - src/symtab.h
fix warnings for useless %printer/%destructor
[bison.git] / src / symtab.h
index d9ee96efa23e2167a9c24ac8d091ba738bc69967..480d6ca3d7bafa3b1b2ee1bcf2324e74428e0c45 100644 (file)
@@ -51,11 +51,27 @@ typedef int symbol_number;
 
 typedef struct symbol symbol;
 
+/* Declaration status of a symbol.
+
+   First, it is "undeclared".  Then, if "undeclared" and used in a
+   %printer/%destructor, it is "used".  If not "declared" by used in a
+   rule, it is "needed".  Finally, if declared (via a rule for
+   nonterminals, or %oken), it is "declared".
+
+   When status are checked at the end, "declared" symbols are fine,
+   "used" symbols trigger warnings, otherwise it's an error.
+*/
+
 typedef enum
   {
-    needed,   /**< found but not "defined".  */
-    used,     /**< used by %printer but not declared.  */
-    declared, /**< defined with %type or %token.  */
+    /** Used in the input file for an unknown reason (error).  */
+    undeclared,
+    /** Used by %destructor/%printer but not defined (warning).  */
+    used,
+    /** Used in the gramar (rules) but not defined (error).  */
+    needed,
+    /** Defined with %type or %token (good).  */
+    declared,
   } status;
 
 /* When extending this structure, be sure to complete