00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef PARSEARGS_H
00010 #define PARSEARGS_H
00011
00012 #ifdef __cplusplus
00013 extern "C" {
00014 #endif
00015
00016 #include "gtypes.h"
00017
00018
00019
00020
00021 typedef enum {
00022 argFlag,
00023
00024 argInt,
00025
00026 argFP,
00027
00028 argString,
00029
00030
00031
00032 argFlagDummy,
00033 argIntDummy,
00034 argFPDummy,
00035 argStringDummy
00036 } ArgKind;
00037
00038
00039
00040
00041 typedef struct {
00042 char *arg;
00043 ArgKind kind;
00044 void *val;
00045 int size;
00046 char *usage;
00047 } ArgDesc;
00048
00049
00050
00051
00052
00053
00054 extern GBool parseArgs(ArgDesc *args, int *argc, char *argv[]);
00055
00056
00057
00058
00059 extern void printUsage(char *program, char *otherArgs, ArgDesc *args);
00060
00061
00062
00063
00064 extern GBool isInt(char *s);
00065 extern GBool isFP(char *s);
00066
00067 #ifdef __cplusplus
00068 }
00069 #endif
00070
00071 #endif