This is states.h in view mode; [Download] [Up]
//------------------------------------------------------------------------ // ^FILE: states.h - state definitions for the CmdLine library // // ^DESCRIPTION: // This file contains the definitions for the various values of the // state and parse-state of a command-line object. It also contains // any definitions that are dependent upon the command-line syntax // (i.e. unix_style or vms_style). // // ^HISTORY: // 03/26/92 Brad Appleton <brad@ssd.csd.harris.com> Created //-^^--------------------------------------------------------------------- #ifndef _states_h #define _states_h #include "cmdline.h" #ifdef unix_style // Default command-flags for a unix-command static const unsigned DEFAULT_CMDFLAGS = CmdLine::OPTS_FIRST ; #endif #ifdef vms_style // Default command-flags for a vms-command static const unsigned DEFAULT_CMDFLAGS = CmdLine::TEMP ; #endif // // cmd_state_t -- Define the bitmasks used to record the command state // enum cmd_state_t { cmd_END_OF_OPTIONS = 0x01, // no more options/keywords? cmd_OPTIONS_USED = 0x02, // were options used on cmdline? cmd_KEYWORDS_USED = 0x04, // were keywords used on cmdline? cmd_GUESSING = 0x08, // are we currently trying to guess? } ; // // cmd_parse_state_t -- Define the possible parse-states for the command // // We use "START_STATE" to reset the state. Only one of the NEED* // states may be set at a time. For any of the NEED* states, TOK_REQUIRED // may or may not be set. TOK_REQUIRED should NOT be set if none of the // NEED* states is set. // // Note: we have the "states" set up so that one can test for WANT or NEED // by a bitwise & with a WANT flag. One can test if the particular "WANT" // is truly "NEEDED" by a bitwise & with the TOK_REQUIRED_FLAG. For // convenience, each WANT_XXX that is truly REQUIRED may also be // represented by NEED_XXX. // enum cmd_parse_state_t { cmd_START_STATE = 0x00, // start-state (this MUST be 0) cmd_TOK_REQUIRED = 0x01, // is the "wanted" token required? cmd_WANT_VAL = 0x02, // are we expecting a value? cmd_NEED_VAL = (cmd_WANT_VAL | cmd_TOK_REQUIRED), #ifdef vms_style cmd_WANT_VALSEP = 0x04, // are we expecting ':' or '=' cmd_NEED_VALSEP = (cmd_WANT_VALSEP | cmd_TOK_REQUIRED), cmd_WANT_LISTSEP = 0x08, // are we expecting ',' or '+' cmd_NEED_LISTSEP = (cmd_WANT_LISTSEP | cmd_TOK_REQUIRED), #endif } ; #endif /* _states_h */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.