|
|
1.1 ! root 1: /* Parse command line arguments for bison, ! 2: Copyright (C) 1984, 1986, 1989 Free Software Foundation, Inc. ! 3: ! 4: This file is part of Bison, the GNU Compiler Compiler. ! 5: ! 6: Bison is free software; you can redistribute it and/or modify ! 7: it under the terms of the GNU General Public License as published by ! 8: the Free Software Foundation; either version 2, or (at your option) ! 9: any later version. ! 10: ! 11: Bison is distributed in the hope that it will be useful, ! 12: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! 14: GNU General Public License for more details. ! 15: ! 16: You should have received a copy of the GNU General Public License ! 17: along with Bison; see the file COPYING. If not, write to ! 18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ! 19: ! 20: ! 21: #include <stdio.h> ! 22: #include "getopt.h" ! 23: #include "system.h" ! 24: #include "files.h" ! 25: ! 26: int verboseflag; ! 27: int definesflag; ! 28: int debugflag; ! 29: int nolinesflag; ! 30: char *spec_name_prefix; /* for -p. */ ! 31: char *spec_file_prefix; /* for -b. */ ! 32: extern int fixed_outfiles;/* for -y */ ! 33: ! 34: extern char *program_name; ! 35: extern char *version_string; ! 36: ! 37: extern void fatal(); ! 38: ! 39: struct option longopts[] = ! 40: { ! 41: {"debug", 0, &debugflag, 1}, ! 42: {"defines", 0, &definesflag, 1}, ! 43: {"file-prefix", 1, 0, 'b'}, ! 44: {"fixed-output-files", 0, &fixed_outfiles, 1}, ! 45: {"help", 0, 0, 'h'}, ! 46: {"name-prefix", 1, 0, 'a'}, ! 47: {"no-lines", 0, &nolinesflag, 1}, ! 48: {"output", 1, 0, 'o'}, ! 49: {"output-file", 1, 0, 'o'}, ! 50: {"verbose", 0, &verboseflag, 1}, ! 51: {"version", 0, 0, 'V'}, ! 52: {"yacc", 0, &fixed_outfiles, 1}, ! 53: {0, 0, 0, 0} ! 54: }; ! 55: ! 56: void ! 57: usage (stream) ! 58: FILE *stream; ! 59: { ! 60: fprintf (stream, "\ ! 61: Usage: %s [-dhltvyV] [-b file-prefix] [-o outfile] [-p name-prefix]\n\ ! 62: [--debug] [--defines] [--fixed-output-files] [--no-lines]\n\ ! 63: [--verbose] [--version] [--help] [--yacc]\n\ ! 64: [--file-prefix=prefix] [--name-prefix=prefix]\n\ ! 65: [--output=outfile] grammar-file\n", ! 66: program_name); ! 67: } ! 68: ! 69: void ! 70: getargs(argc, argv) ! 71: int argc; ! 72: char *argv[]; ! 73: { ! 74: register int c; ! 75: ! 76: verboseflag = 0; ! 77: definesflag = 0; ! 78: debugflag = 0; ! 79: fixed_outfiles = 0; ! 80: ! 81: while ((c = getopt_long (argc, argv, "yvdhltVo:b:p:", longopts, (int *)0)) ! 82: != EOF) ! 83: { ! 84: switch (c) ! 85: { ! 86: case 0: ! 87: /* Certain long options cause getopt_long to return 0. */ ! 88: break; ! 89: ! 90: case 'y': ! 91: fixed_outfiles = 1; ! 92: break; ! 93: ! 94: case 'h': ! 95: usage (stdout); ! 96: exit (0); ! 97: ! 98: case 'V': ! 99: printf ("%s", version_string); ! 100: exit (0); ! 101: ! 102: case 'v': ! 103: verboseflag = 1; ! 104: break; ! 105: ! 106: case 'd': ! 107: definesflag = 1; ! 108: break; ! 109: ! 110: case 'l': ! 111: nolinesflag = 1; ! 112: break; ! 113: ! 114: case 't': ! 115: debugflag = 1; ! 116: break; ! 117: ! 118: case 'o': ! 119: spec_outfile = optarg; ! 120: break; ! 121: ! 122: case 'b': ! 123: spec_file_prefix = optarg; ! 124: break; ! 125: ! 126: case 'p': ! 127: spec_name_prefix = optarg; ! 128: break; ! 129: ! 130: default: ! 131: usage (stderr); ! 132: exit (1); ! 133: } ! 134: } ! 135: ! 136: if (optind == argc) ! 137: { ! 138: fprintf(stderr, "%s: no grammar file given\n", program_name); ! 139: exit(1); ! 140: } ! 141: if (optind < argc - 1) ! 142: fprintf(stderr, "%s: warning: extra arguments ignored\n", program_name); ! 143: ! 144: infile = argv[optind]; ! 145: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.