subsequent productions. It must be the name of a structure, so `$expr`
maps to `struct expr`.
+Any productions given before the first data type will have no data type
+and can carry no information. In order to allow other non-terminals to
+have no type, the data type `$void` can be given. This does *not* mean
+that `struct void` will be used, but rather than no type will be
+associated with future non-terminals.
+
The precedence line must contain a list of symbols - typically
terminal symbols, but not necessarily. It can only contain symbols
that have not been seen yet, so precedence declaration must precede
assoc = Non;
else {
g->current_type = t.txt;
+ if (text_is(t.txt, "void"))
+ g->current_type.txt = NULL;
t = token_next(ts);
if (t.num != TK_newline) {
err = "Extra tokens after type name";