X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/72f000b088367bd18a20b3e063bc1ab6a3e0bc15..55f0c7b1f26afabb7f356343f2650626e09fce51:/src/output.c diff --git a/src/output.c b/src/output.c index 2b5e9154..5b12f728 100644 --- a/src/output.c +++ b/src/output.c @@ -17,8 +17,8 @@ You should have received a copy of the GNU General Public License along with Bison; see the file COPYING. If not, write to the Free - Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ + Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. */ #include "system.h" @@ -36,12 +36,10 @@ #include "muscle_tab.h" #include "output.h" #include "reader.h" +#include "scan-skel.h" #include "symtab.h" #include "tables.h" -/* From src/scan-skel.l. */ -void scan_skel (FILE *); - static struct obstack format_obstack; @@ -60,7 +58,7 @@ bool error_verbose = false; #define GENERATE_MUSCLE_INSERT_TABLE(Name, Type) \ \ static void \ -Name (const char *name, \ +Name (char const *name, \ Type *table_data, \ Type first, \ int begin, \ @@ -145,6 +143,7 @@ escaped_output (FILE *out, char const *string) static void prepare_symbols (void) { + MUSCLE_INSERT_BOOL ("token_table", token_table_flag); MUSCLE_INSERT_INT ("tokens_number", ntokens); MUSCLE_INSERT_INT ("nterms_number", nvars); MUSCLE_INSERT_INT ("undef_token_number", undeftoken->number); @@ -162,10 +161,7 @@ prepare_symbols (void) int j = 2; for (i = 0; i < nsyms; i++) { - char const *tag = symbols[i]->tag; - char const *cp = (*tag == '"' - ? tag - : quotearg_style (c_quoting_style, tag)); + char const *cp = quotearg_style (c_quoting_style, symbols[i]->tag); /* Width of the next token, including the two quotes, the comma and the space. */ int width = strlen (cp) + 2; @@ -561,7 +557,8 @@ output_skeleton (void) out = fdopen (filter_fd[0], "w"); if (! out) - error (EXIT_FAILURE, get_errno (), "fdopen"); + error (EXIT_FAILURE, get_errno (), + "fdopen"); /* Output the definitions of all the muscles. */ fputs ("m4_init()\n", out); @@ -582,7 +579,8 @@ output_skeleton (void) timevar_push (TV_M4); in = fdopen (filter_fd[1], "r"); if (! in) - error (EXIT_FAILURE, get_errno (), "fdopen"); + error (EXIT_FAILURE, get_errno (), + "fdopen"); scan_skel (in); xfclose (in); reap_subpipe (pid, m4); @@ -618,8 +616,12 @@ prepare (void) skeleton = "yacc.c"; } - /* Parse the skeleton file and output the needed parsers. */ - MUSCLE_INSERT_C_STRING ("skeleton", skeleton); + /* About the skeletons. */ + { + char const *pkgdatadir = getenv ("BISON_PKGDATADIR"); + MUSCLE_INSERT_STRING ("pkgdatadir", pkgdatadir ? pkgdatadir : PKGDATADIR); + MUSCLE_INSERT_C_STRING ("skeleton", skeleton); + } }