]> git.saurik.com Git - bison.git/commitdiff
* getargs.c (skeleton): New variable.
authorAkim Demaille <akim@epita.fr>
Fri, 16 Mar 2001 15:16:08 +0000 (15:16 +0000)
committerAkim Demaille <akim@epita.fr>
Fri, 16 Mar 2001 15:16:08 +0000 (15:16 +0000)
(longopts): --skeleton is a new option.
(shortopts, getargs): -S is a new option.
* getargs.h: Declare skeleton.
* output.c (output_parser): Use it.

ChangeLog
NEWS
doc/bison.info
doc/bison.info-4
doc/bison.texinfo
doc/stamp-vti
po/cat-id-tbl.c
src/getargs.c
src/getargs.h
src/output.c

index 533d05e5ef9e4859d4591445691db7b2796bbd75..aa7498c8be7ba4e492b85f706f65a2bb5383732b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2001-03-16  Akim Demaille  <akim@epita.fr>
+
+       * getargs.c (skeleton): New variable.
+       (longopts): --skeleton is a new option.
+       (shortopts, getargs): -S is a new option.
+       * getargs.h: Declare skeleton.
+       * output.c (output_parser): Use it.
+
 2001-03-16  Akim Demaille  <akim@epita.fr>
 
        * m4/strerror_r.m4: New.
 2001-03-16  Akim Demaille  <akim@epita.fr>
 
        * m4/strerror_r.m4: New.
diff --git a/NEWS b/NEWS
index 8fbadf4e1178d3f3d8fd88f8b0433c348dacbbed..988894ec419f82d45464fd1bb9a2fb7ea158bf0c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,11 @@ Changes in version 1.28a:
 
 * Added `--locations' and `%locations'.
 
 
 * Added `--locations' and `%locations'.
 
+* Added `-S' and `--skeleton'.
+
+* Special characters are escaped when output.  This solves the problems
+  of the #line lines with path names including backslashes.
+
 * New directives.
   `%yacc', `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
   `%debug'.
 * New directives.
   `%yacc', `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
   `%debug'.
index 763b5eb2a9619446498d39d4e92c2f65fbc3f043..f9a4eb0c0eaad0b35ca711978aa8933fa4b7dc6d 100644 (file)
@@ -34,7 +34,7 @@ bison.info-1: 1306
 bison.info-2: 50276
 bison.info-3: 98079
 bison.info-4: 147596
 bison.info-2: 50276
 bison.info-3: 98079
 bison.info-4: 147596
-bison.info-5: 191991
+bison.info-5: 192129
 \1f
 Tag Table:
 (Indirect)
 \1f
 Tag Table:
 (Indirect)
@@ -124,11 +124,11 @@ Node: Tie-in Recovery\7f172317
 Node: Debugging\7f174489
 Node: Invocation\7f177790
 Node: Bison Options\7f178520
 Node: Debugging\7f174489
 Node: Invocation\7f177790
 Node: Bison Options\7f178520
-Node: Environment Variables\7f181893
-Node: Option Cross Key\7f182741
-Node: VMS Invocation\7f183631
-Node: Table of Symbols\7f184415
-Node: Glossary\7f191991
-Node: Index\7f198281
+Node: Environment Variables\7f182031
+Node: Option Cross Key\7f182879
+Node: VMS Invocation\7f183769
+Node: Table of Symbols\7f184553
+Node: Glossary\7f192129
+Node: Index\7f198419
 \1f
 End Tag Table
 \1f
 End Tag Table
index ae2509a431ec939ec96e7acf1342b2654a12e46b..60dea696d197dfc13229319a05f5334728e06af1 100644 (file)
@@ -846,6 +846,11 @@ Operations modes:
 
 Tuning the parser:
 
 
 Tuning the parser:
 
+`-S FILE'
+`--skeleton=FILE'
+     Specify the skeleton to use.  You probably don't need this option
+     unless you are developing Bison.
+
 `-t'
 `--debug'
      Output a definition of the macro `YYDEBUG' into the parser file, so
 `-t'
 `--debug'
      Output a definition of the macro `YYDEBUG' into the parser file, so
index be291754d6e31657ecae55dd8f991297fb36b01b..c3783fb060e862d526fb55dcf8d8ea94cb7b9b91 100644 (file)
@@ -4984,6 +4984,11 @@ bison -y $*
 Tuning the parser:
 
 @table @option
 Tuning the parser:
 
 @table @option
+@item -S @var{file}
+@itemx --skeleton=@var{file}
+Specify the skeleton to use.  You probably don't need this option unless
+you are developing Bison.
+
 @item -t
 @itemx --debug
 Output a definition of the macro @code{YYDEBUG} into the parser file, so
 @item -t
 @itemx --debug
 Output a definition of the macro @code{YYDEBUG} into the parser file, so
index 5fb7ec0579bbeb33ad63eeb8c0c6fb309fea656a..9f5acf10ea4a1387dd4bde60127bed47dc20222e 100644 (file)
@@ -1,3 +1,3 @@
-@set UPDATED 18 January 2001
+@set UPDATED 16 March 2001
 @set EDITION 1.28a
 @set VERSION 1.28a
 @set EDITION 1.28a
 @set VERSION 1.28a
index 72696884886aa8a4598f9a73f7dbbdee04fac133..6627ce8191c3d6cf0702bf2eab2853678a438c12 100644 (file)
@@ -43,6 +43,7 @@ Operation modes:\n\
   -y, --yacc      emulate POSIX yacc\n", 26},
   {"\
 Parser:\n\
   -y, --yacc      emulate POSIX yacc\n", 26},
   {"\
 Parser:\n\
+  -S, --skeleton=FILE        specify the skeleton to use\n\
   -t, --debug                instrument the parser for debugging\n\
       --locations            enable locations computation\n\
   -p, --name-prefix=PREFIX   prepend PREFIX to the external symbols\n\
   -t, --debug                instrument the parser for debugging\n\
       --locations            enable locations computation\n\
   -p, --name-prefix=PREFIX   prepend PREFIX to the external symbols\n\
@@ -58,7 +59,8 @@ Output:\n\
   -o, --output-file=FILE     leave output to FILE\n", 28},
   {"Report bugs to <bug-bison@gnu.org>.\n", 29},
   {"bison (GNU Bison) %s", 30},
   -o, --output-file=FILE     leave output to FILE\n", 28},
   {"Report bugs to <bug-bison@gnu.org>.\n", 29},
   {"bison (GNU Bison) %s", 30},
-  {"Copyright 1984, 1986, 1989, 1992, 2000 Free Software Foundation, Inc.\n", 31},
+  {"\
+Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n", 31},
   {"\
 This is free software; see the source for copying conditions.  There is NO\n\
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", 32},
   {"\
 This is free software; see the source for copying conditions.  There is NO\n\
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", 32},
index 9882af917b44f4b60af50cc4eb5adbb1f21ce692..890179ec5b5c3f5a72ad95c2330bc43cbb3fad8b 100644 (file)
@@ -1,5 +1,5 @@
 /* Parse command line arguments for bison.
 /* Parse command line arguments for bison.
-   Copyright 1984, 1986, 1989, 1992, 2000 Free Software Foundation, Inc.
+   Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
 
    This file is part of Bison, the GNU Compiler Compiler.
 
@@ -30,13 +30,14 @@ int locations_flag = 0;
 int no_lines_flag = 0;
 int no_parser_flag = 0;
 int raw_flag = 0;
 int no_lines_flag = 0;
 int no_parser_flag = 0;
 int raw_flag = 0;
+char *skeleton = 0;
 int token_table_flag = 0;
 int verbose_flag = 0;
 int statistics_flag = 0;
 int yacc_flag = 0;     /* for -y */
 
 extern char *program_name;
 int token_table_flag = 0;
 int verbose_flag = 0;
 int statistics_flag = 0;
 int yacc_flag = 0;     /* for -y */
 
 extern char *program_name;
-const char *shortopts = "yvdhrltknVo:b:p:";
+const char *shortopts = "yvdhrltknVo:b:p:S:";
 static struct option longopts[] =
 {
   /* Operation modes. */
 static struct option longopts[] =
 {
   /* Operation modes. */
@@ -46,6 +47,8 @@ static struct option longopts[] =
   {"fixed-output-files",no_argument,   0, 'y'},
 
   /* Parser. */
   {"fixed-output-files",no_argument,   0, 'y'},
 
   /* Parser. */
+  {"skeleton",         required_argument,      0, 'S'},
+  {"debug",            no_argument,            0, 'd'},
   {"locations",                no_argument,    &locations_flag, 1},
   /* was 'a';  apparently unused -wjh */
   {"name-prefix",      required_argument,      0, 'p'},
   {"locations",                no_argument,    &locations_flag, 1},
   /* was 'a';  apparently unused -wjh */
   {"name-prefix",      required_argument,      0, 'p'},
@@ -53,7 +56,6 @@ static struct option longopts[] =
   {"no-parser",                no_argument,            0, 'n'},
   {"raw",              no_argument,            0, 'r'},
   {"token-table",      no_argument,            0, 'k'},
   {"no-parser",                no_argument,            0, 'n'},
   {"raw",              no_argument,            0, 'r'},
   {"token-table",      no_argument,            0, 'k'},
-  {"debug",            no_argument,            0, 'd'},
 
   /* Output. */
   {"defines",          no_argument,            0, 'd'},
 
   /* Output. */
   {"defines",          no_argument,            0, 'd'},
@@ -98,6 +100,7 @@ Operation modes:\n\
 
   fputs (_("\
 Parser:\n\
 
   fputs (_("\
 Parser:\n\
+  -S, --skeleton=FILE        specify the skeleton to use\n\
   -t, --debug                instrument the parser for debugging\n\
       --locations            enable locations computation\n\
   -p, --name-prefix=PREFIX   prepend PREFIX to the external symbols\n\
   -t, --debug                instrument the parser for debugging\n\
       --locations            enable locations computation\n\
   -p, --name-prefix=PREFIX   prepend PREFIX to the external symbols\n\
@@ -136,7 +139,7 @@ bison (GNU Bison) %s"), VERSION);
   putc ('\n', stream);
 
   fputs (_("\
   putc ('\n', stream);
 
   fputs (_("\
-Copyright 1984, 1986, 1989, 1992, 2000 Free Software Foundation, Inc.\n"),
+Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"),
         stream);
 
   fputs (_("\
         stream);
 
   fputs (_("\
@@ -156,73 +159,74 @@ getargs (int argc, char *argv[])
 {
   int c;
 
 {
   int c;
 
-  while ((c = getopt_long (argc, argv, "yvdhrltknVo:b:p:", longopts, (int *)0))
-        != EOF)
-    {
-      switch (c)
-       {
-       case 0:
-         /* Certain long options cause getopt_long to return 0.  */
-         break;
-
-       case 'y':
-         yacc_flag = 1;
-         break;
-
-       case 'h':
-         usage (stdout);
-         exit (0);
-
-       case 'V':
-         version (stdout);
-         exit (0);
-
-       case 'v':
-         verbose_flag = 1;
-         break;
-
-       case 'd':
-         defines_flag = 1;
-         break;
-
-       case 'l':
-         no_lines_flag = 1;
-         break;
-
-       case 'k':
-         token_table_flag = 1;
-         break;
-
-       case 'r':
-         raw_flag = 1;
-         break;
-
-       case 'n':
-         no_parser_flag = 1;
-         break;
-
-       case 't':
-         debug_flag = 1;
-         break;
-
-       case 'o':
-         spec_outfile = optarg;
-         break;
-
-       case 'b':
-         spec_file_prefix = optarg;
-         break;
-
-       case 'p':
-         spec_name_prefix = optarg;
-         break;
-
-       default:
-         fprintf (stderr, _("Try `%s --help' for more information.\n"),
-                  program_name);
-         exit (1);
-       }
-    }
+  while ((c = getopt_long (argc, argv, shortopts, longopts, NULL)) != EOF)
+    switch (c)
+      {
+      case 0:
+       /* Certain long options cause getopt_long to return 0.  */
+       break;
+
+      case 'y':
+       yacc_flag = 1;
+       break;
+
+      case 'h':
+       usage (stdout);
+       exit (0);
+
+      case 'V':
+       version (stdout);
+       exit (0);
+
+      case 'v':
+       verbose_flag = 1;
+       break;
+
+      case 'S':
+       skeleton = optarg;
+       break;
+
+      case 'd':
+       defines_flag = 1;
+       break;
+
+      case 'l':
+       no_lines_flag = 1;
+       break;
+
+      case 'k':
+       token_table_flag = 1;
+       break;
+
+      case 'r':
+       raw_flag = 1;
+       break;
+
+      case 'n':
+       no_parser_flag = 1;
+       break;
+
+      case 't':
+       debug_flag = 1;
+       break;
+
+      case 'o':
+       spec_outfile = optarg;
+       break;
+
+      case 'b':
+       spec_file_prefix = optarg;
+       break;
+
+      case 'p':
+       spec_name_prefix = optarg;
+       break;
+
+      default:
+       fprintf (stderr, _("Try `%s --help' for more information.\n"),
+                program_name);
+       exit (1);
+      }
 
   if (optind == argc)
     {
 
   if (optind == argc)
     {
index d674b78af4fab0a0f794306f836708d88bf4703d..e86d4335a7037d220b550f0dfd053847af51270c 100644 (file)
@@ -1,5 +1,5 @@
 /* Parse command line arguments for bison.
 /* Parse command line arguments for bison.
-   Copyright 1984, 1986, 1989, 1992, 2000 Free Software Foundation, Inc.
+   Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
 
    This file is part of Bison, the GNU Compiler Compiler.
 
@@ -24,6 +24,7 @@
 /* flags set by % directives */
 extern char *spec_file_prefix; /* for -b */
 extern char *spec_name_prefix;         /* for -p */
 /* flags set by % directives */
 extern char *spec_file_prefix; /* for -b */
 extern char *spec_name_prefix;         /* for -p */
+extern char *skeleton;
 
 extern int debug_flag;                 /* for -t */
 extern int defines_flag;       /* for -d */
 
 extern int debug_flag;                 /* for -t */
 extern int defines_flag;       /* for -d */
index 914e0a7d87d660a8120693135c851d4bf44c7a22..b86f461134c38884a62a8509f4c39875c4ccbd33 100644 (file)
@@ -1154,17 +1154,19 @@ output_parser (void)
   int c;
   FILE *fskel;
   size_t line;
   int c;
   FILE *fskel;
   size_t line;
-  const char *skeleton = NULL;
   int actions_dumped = 0;
 
   if (pure_parser)
     obstack_sgrow (&table_obstack, "#define YYPURE 1\n\n");
 
   /* Loop over lines in the standard parser file.  */
   int actions_dumped = 0;
 
   if (pure_parser)
     obstack_sgrow (&table_obstack, "#define YYPURE 1\n\n");
 
   /* Loop over lines in the standard parser file.  */
-  if (semantic_parser)
-    skeleton = skeleton_find ("BISON_HAIRY", BISON_HAIRY);
-  else
-    skeleton = skeleton_find ("BISON_SIMPLE", BISON_SIMPLE);
+  if (!skeleton)
+    {
+      if (semantic_parser)
+       skeleton = skeleton_find ("BISON_HAIRY", BISON_HAIRY);
+      else
+       skeleton = skeleton_find ("BISON_SIMPLE", BISON_SIMPLE);
+    }
   fskel = xfopen (skeleton, "r");
 
   /* Set LINE to 2, not 1: `#line LINENUM' -- Here LINENUM is a
   fskel = xfopen (skeleton, "r");
 
   /* Set LINE to 2, not 1: `#line LINENUM' -- Here LINENUM is a