711 |
{ |
{ |
712 |
int c; |
int c; |
713 |
int count = 0; |
int count = 0; |
714 |
|
const char *prologue = "\ |
715 |
|
#ifndef YYSTYPE\n\ |
716 |
|
typedef union"; |
717 |
|
const char *epilogue = "\ |
718 |
|
yystype;\n\ |
719 |
|
# define YYSTYPE yystype\n\ |
720 |
|
#endif\n"; |
721 |
|
|
722 |
if (typed) |
if (typed) |
723 |
complain (_("multiple %s declarations"), "%union"); |
complain (_("multiple %s declarations"), "%union"); |
730 |
else |
else |
731 |
obstack_1grow (&attrs_obstack, '\n'); |
obstack_1grow (&attrs_obstack, '\n'); |
732 |
|
|
733 |
obstack_sgrow (&attrs_obstack, "typedef union"); |
obstack_sgrow (&attrs_obstack, prologue); |
734 |
if (defines_flag) |
if (defines_flag) |
735 |
obstack_sgrow (&defines_obstack, "typedef union"); |
obstack_sgrow (&defines_obstack, prologue); |
736 |
|
|
737 |
c = getc (finput); |
c = getc (finput); |
738 |
|
|
767 |
count--; |
count--; |
768 |
if (count <= 0) |
if (count <= 0) |
769 |
{ |
{ |
770 |
obstack_sgrow (&attrs_obstack, " YYSTYPE;\n"); |
obstack_sgrow (&attrs_obstack, epilogue); |
771 |
if (defines_flag) |
if (defines_flag) |
772 |
obstack_sgrow (&defines_obstack, " YYSTYPE;\n"); |
obstack_sgrow (&defines_obstack, epilogue); |
773 |
/* JF don't choke on trailing semi */ |
/* JF don't choke on trailing semi */ |
774 |
c = skip_white_space (); |
c = skip_white_space (); |
775 |
if (c != ';') |
if (c != ';') |
1962 |
/* Read the declaration section. Copy %{ ... %} groups to |
/* Read the declaration section. Copy %{ ... %} groups to |
1963 |
TABLE_OBSTACK and FDEFINES file. Also notice any %token, %left, |
TABLE_OBSTACK and FDEFINES file. Also notice any %token, %left, |
1964 |
etc. found there. */ |
etc. found there. */ |
|
obstack_1grow (&table_obstack, '\n'); |
|
1965 |
obstack_fgrow3 (&table_obstack, "\ |
obstack_fgrow3 (&table_obstack, "\ |
1966 |
/* %s, made from %s\n\ |
/* %s, made from %s\n\ |
1967 |
by GNU bison %s. */\n\ |
by GNU bison %s. */\n\ |