[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
18-fyi-symbols-output.patch
From: |
Akim Demaille |
Subject: |
18-fyi-symbols-output.patch |
Date: |
Mon, 19 Nov 2001 10:03:07 +0100 |
Index: ChangeLog
from Akim Demaille <address@hidden>
* src/reader.c (symbols_output): New, extracted from...
(packsymbols): Here.
(reader): Call it.
Index: src/reader.c
--- src/reader.c Sun, 04 Nov 2001 23:29:11 +0100 akim
+++ src/reader.c Fri, 16 Nov 2001 00:40:16 +0100 akim
@@ -1672,6 +1672,49 @@
}
+/*--------------------.
+| Output the header. |
+`--------------------*/
+
+static void
+symbols_output (void)
+{
+ if (defines_flag)
+ {
+ output_token_defines (&defines_obstack);
+
+ if (!pure_parser)
+ {
+ if (spec_name_prefix)
+ obstack_fgrow1 (&defines_obstack, "\nextern YYSTYPE %slval;\n",
+ spec_name_prefix);
+ else
+ obstack_sgrow (&defines_obstack,
+ "\nextern YYSTYPE yylval;\n");
+ }
+
+ if (semantic_parser)
+ {
+ int i;
+
+ for (i = ntokens; i < nsyms; i++)
+ {
+ /* don't make these for dummy nonterminals made by gensym. */
+ if (*tags[i] != '@')
+ obstack_fgrow2 (&defines_obstack,
+ "# define\tNT%s\t%d\n", tags[i], i);
+ }
+#if 0
+ /* `fdefines' is now a temporary file, so we need to copy its
+ contents in `done', so we can't close it here. */
+ fclose (fdefines);
+ fdefines = NULL;
+#endif
+ }
+ }
+}
+
+
/*------------------------------------------------------------------.
| Set TOKEN_TRANSLATIONS. Check that no two symbols share the same |
| number. |
@@ -1813,40 +1856,6 @@
fatal (_("the start symbol %s is a token"), startval->tag);
start_symbol = startval->value;
-
- if (defines_flag)
- {
- output_token_defines (&defines_obstack);
-
- if (!pure_parser)
- {
- if (spec_name_prefix)
- obstack_fgrow1 (&defines_obstack, "\nextern YYSTYPE %slval;\n",
- spec_name_prefix);
- else
- obstack_sgrow (&defines_obstack,
- "\nextern YYSTYPE yylval;\n");
- }
-
- if (semantic_parser)
- {
- int i;
-
- for (i = ntokens; i < nsyms; i++)
- {
- /* don't make these for dummy nonterminals made by gensym. */
- if (*tags[i] != '@')
- obstack_fgrow2 (&defines_obstack,
- "# define\tNT%s\t%d\n", tags[i], i);
- }
-#if 0
- /* `fdefines' is now a temporary file, so we need to copy its
- contents in `done', so we can't close it here. */
- fclose (fdefines);
- fdefines = NULL;
-#endif
- }
- }
}
@@ -1990,6 +1999,8 @@
packsymbols ();
/* Convert the grammar into the format described in gram.h. */
packgram ();
+ /* Output the headers. */
+ symbols_output ();
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- 18-fyi-symbols-output.patch,
Akim Demaille <=