Arglex
[Common]

Parse command switch. More...

Data Structures

struct  arglex_table_ty
struct  arglex_value_ty
struct  arglex_dispatch_ty

Defines

#define ARGLEX_END_MARKER   { (const char *)0, 0, }

Enumerations

enum  {
  ARGLEX_PREFETCH_FAIL = -99, arglex_token_eoln = -20, arglex_token_help, arglex_token_number,
  arglex_token_number_incomplete, arglex_token_option, arglex_token_option_incomplete, arglex_token_page_length,
  arglex_token_page_width, arglex_token_stdio, arglex_token_string, arglex_token_string_incomplete,
  arglex_token_trace, arglex_token_version
}

Functions

void arglex_init (int, char **, arglex_table_ty *)
int arglex (void)
int arglex_prefetch (int *, int)
bool arglex_compare (const char *formal, const char *actual, const char **partial)
const char * arglex_token_name (int)
arglex_table_tyarglex_table_catenate (arglex_table_ty *, arglex_table_ty *)
void arglex_dispatch (arglex_dispatch_ty *table, int table_len, void(*usage)(void))
void arglex_synthetic (int, char **, int)
void arglex_retable (arglex_table_ty *)
int arglex_get_string (void)

Variables

int arglex_token
arglex_value_ty arglex_value

Detailed Description

Parse command switch.


Define Documentation

#define ARGLEX_END_MARKER   { (const char *)0, 0, }

Definition at line 30 of file arglex.h.


Enumeration Type Documentation

anonymous enum

Enumerator:
ARGLEX_PREFETCH_FAIL 
arglex_token_eoln 
arglex_token_help 
arglex_token_number 
arglex_token_number_incomplete 
arglex_token_option 
arglex_token_option_incomplete 
arglex_token_page_length 
arglex_token_page_width 
arglex_token_stdio 
arglex_token_string 
arglex_token_string_incomplete 
arglex_token_trace 
arglex_token_version 

Definition at line 32 of file arglex.h.


Function Documentation

int arglex ( void   ) 

bool arglex_compare ( const char *  formal,
const char *  actual,
const char **  partial 
)

The arglex_compare function is used to compare a command line string with a formal spec of the option, to see if they compare equal.

The actual is case-insensitive. Uppercase in the formal means a mandatory character, while lower case means optional. Any number of consecutive optional characters may be supplied by actual, but none may be skipped, unless all are skipped to the next non-lower-case letter.

The underscore (_) is like a lower-case minus, it matches "", "-" and "_".

The "*" in a pattern matches everything to the end of the line, anything after the "*" is ignored. The rest of the line is pointed to by the "partial" variable as a side-effect (else it will be 0). This rather ugly feature is to support "-I./dir" type options.

A backslash in a pattern nominates an exact match required, case must matche excatly here. This rather ugly feature is to support "-I./dir" type options.

For example: "-project" and "-P' both match "-Project", as does "-proJ", but "-prj" does not.

For example: "-devDir" and "-d_d' both match "-Development_Directory", but "-dvlpmnt_drctry" does not.

For example: to match include path specifications, use a pattern such as "-\\I*", and the partial global variable will have the path in it on return.

Parameters:
formal the "pattern" for the option
actual what the user supplied
partial Where to put the results of a "*" match.
Returns:
int; zero if no match, non-zero if they do match.

void arglex_dispatch ( arglex_dispatch_ty table,
int  table_len,
void(*)(void)  usage 
)

int arglex_get_string ( void   ) 

void arglex_init ( int  ,
char **  ,
arglex_table_ty  
)

int arglex_prefetch ( int *  ,
int   
)

void arglex_retable ( arglex_table_ty  ) 

void arglex_synthetic ( int  ,
char **  ,
int   
)

arglex_table_ty* arglex_table_catenate ( arglex_table_ty ,
arglex_table_ty  
)

const char* arglex_token_name ( int   ) 


Variable Documentation


Generated on Wed Mar 12 23:37:38 2008 for Aegis by  doxygen 1.5.5