home *** CD-ROM | disk | FTP | other *** search
/ Carousel / CAROUSEL.cdr / mactosh / lang / bison.sit / vmsgetargs.c < prev    next >
C/C++ Source or Header  |  1988-11-19  |  2KB  |  82 lines

  1. #include <ctype.h>
  2.  
  3. /*
  4.  *    VMS version of getargs(): Uses DCL command parsing
  5.  *        (argc and argv are ignored)
  6.  */
  7. getargs(argc,argv)
  8.      int argc;
  9.      char *argv[];
  10. {
  11.   register char *cp;
  12.   static char Input_File[256];
  13.   extern int verboseflag, definesflag, fixed_outfiles;
  14.   extern char *infile;
  15.  
  16.   verboseflag = 0;
  17.   definesflag = 0;
  18.   /*
  19.    *    Check for /VERBOSE qualifier
  20.    */
  21.   if (cli_present("BISON$VERBOSE")) verboseflag = 1;
  22.   /*
  23.    *    Check for /DEFINES qualifier
  24.    */
  25.   if (cli_present("BISON$DEFINES")) definesflag = 1;
  26.   /*
  27.    *    Check for /FIXED_OUTFILES qualifier
  28.    */
  29.   if (cli_present("BISON$FIXED_OUTFILES")) fixed_outfiles = 1;
  30.   /*
  31.    *    Get the filename
  32.    */
  33.   cli_get_value("BISON$INFILE", Input_File, sizeof(Input_File));
  34.   /*
  35.    *    Lowercaseify the input filename
  36.    */
  37.   cp = Input_File;
  38.   while(*cp) {
  39.     if (isupper(*cp)) *cp = tolower(*cp);
  40.     cp++;
  41.   }
  42.   infile = Input_File;
  43. }
  44.  
  45. /************        DCL PARSING ROUTINES        **********/
  46.  
  47. /*
  48.  *    See if "NAME" is present
  49.  */
  50. int
  51. cli_present(Name)
  52.      char *Name;
  53. {
  54.   struct {int Size; char *Ptr;} Descr;
  55.  
  56.   Descr.Ptr = Name;
  57.   Descr.Size = strlen(Name);
  58.   return((cli$present(&Descr) & 1) ? 1 : 0);
  59. }
  60.  
  61. /*
  62.  *    Get value of "NAME"
  63.  */
  64. int
  65. cli_get_value(Name,Buffer,Size)
  66.      char *Name;
  67.      char *Buffer;
  68. {
  69.   struct {int Size; char *Ptr;} Descr1,Descr2;
  70.  
  71.   Descr1.Ptr = Name;
  72.   Descr1.Size = strlen(Name);
  73.   Descr2.Ptr = Buffer;
  74.   Descr2.Size = Size-1;
  75.   if (cli$get_value(&Descr1,&Descr2,&Descr2.Size) & 1) {
  76.     Buffer[Descr2.Size] = 0;
  77.     return(1);
  78.   }
  79.   return(0);
  80. }
  81.  
  82.