ftp.nice.ch/pub/next/unix/database/sybtool.1.3.s.tar.gz#/sybtool-1.3/cmdline-1.04/src/cmd/syntax.h

This is syntax.h in view mode; [Download] [Up]

//------------------------------------------------------------------------
// ^FILE: syntax.h - define an object to represent the syntax of a
//                   command-line argument.
//
// ^DESCRIPTION:
//    This file defines an object that parses and records the syntax of
//    a command-line argument.
//
// ^HISTORY:
//    04/29/92	Brad Appleton	<brad@ssd.csd.harris.com>	Created
//-^^---------------------------------------------------------------------

#ifndef _syntax_h
#define _syntax_h

#include  "fsm.h"

class  istream;
class  ArgSyntax {
public:
   ArgSyntax(void)
      : arg_syntax(0), arg_char(0), arg_keyword(0), arg_value(0)
      {}

      // Return the syntax flags
   unsigned
   syntax(void) const { return  arg_syntax; }

      // Return the option character
   char
   optchar(void) const { return  arg_char; }

      // Return the keyword name
   const char *
   keyword(void) const { return  arg_keyword; }

      // Return the value name
   const char *
   value(void) const { return  arg_value; }

      // Extract the syntax (compile it) from an input stream
   friend  istream &
   operator>>(istream & is, ArgSyntax & arg);

private:
   unsigned     arg_syntax ;
   char         arg_char;
   const char * arg_keyword;
   const char * arg_value;

private:
   int
   parse_syntax(const char * syntax);

   void
   parse_value(const SyntaxFSM & fsm);

   istream &
   parse_flag(istream & is);
} ;

#endif  /* _syntax_h */

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.