+/* Shorts options. */
+const char *short_options = "yvegdhr:ltknVo:b:p:S:";
+
+static struct option const long_options[] =
+{
+ /* Operation modes. */
+ { "help", no_argument, 0, 'h' },
+ { "version", no_argument, 0, 'V' },
+
+ /* Parser. */
+ { "name-prefix", required_argument, 0, 'p' },
+ { "include", required_argument, 0, 'I' },
+
+ /* Output. */
+ { "file-prefix", required_argument, 0, 'b' },
+ { "output", required_argument, 0, 'o' },
+ { "output-file", required_argument, 0, 'o' },
+ { "graph", optional_argument, 0, 'g' },
+ { "report", required_argument, 0, 'r' },
+ { "verbose", no_argument, 0, 'v' },
+
+ /* Hidden. */
+ { "trace", no_argument, &trace_flag, 1 },
+
+ /* FIXME: semantic parsers will output an `include' of an
+ output file: be sure that the naem included is indeed the name of
+ the output file. */ /* FIXME Should we activate this options ?
+ */
+ { "output", required_argument, 0, 'o' },
+ { "file-prefix", required_argument, 0, 'b' },
+ { "name-prefix", required_argument, 0, 'p' },
+
+ /*
+ * Percent and command line declarations.
+ */
+
+ /* Output. */
+ { "defines", optional_argument, 0, 'd' },
+
+ /* Operation modes. */
+ { "fixed-output-files", no_argument, 0, 'y' },
+ { "yacc", no_argument, 0, 'y' },
+
+ /* Parser. */
+ { "debug", no_argument, 0, 't' },
+ { "locations", no_argument, &locations_flag, 1 },
+ { "no-lines", no_argument, 0, 'l' },
+ { "no-parser", no_argument, 0, 'n' },
+ { "raw", no_argument, 0, 0 },
+ { "skeleton", required_argument, 0, 'S' },
+ { "token-table", no_argument, 0, 'k' },
+
+ {0, 0, 0, 0}
+};
+
+/* Under DOS, there is no difference on the case. This can be
+ troublesome when looking for `.tab' etc. */
+#ifdef MSDOS
+# define AS_FILE_NAME(File) (strlwr (File), (File))
+#else
+# define AS_FILE_NAME(File) (File)
+#endif
+