- /* The key, name of the symbol. */
- char *tag;
- /* Its type. */
- char *type_name;
-
- symbol_number_t number;
- short prec;
- associativity assoc;
+ /* The key, name of the symbol. */
+ uniqstr tag;
+ /* The location of its first occurrence. */
+ location location;
+
+ /* Its %type and associated printer and destructor. */
+ uniqstr type_name;
+ location type_location;
+
+ /* Does not own the memory. */
+ const char *destructor;
+ location destructor_location;
+
+ /* Does not own the memory. */
+ const char *printer;
+ location printer_location;
+
+ symbol_number number;
+ location prec_location;
+ int prec;
+ assoc assoc;