00001
00002
00003
00004
00005
00006
00007
00008
00009 #include <iostream.h>
00010 #include "stdinc.h"
00011 #include "stdarg.h"
00012
00013 #ifndef _PROGRAM_H
00014 #define _PROGRAM_H
00015
00016
00017 typedef char *string;
00018
00019
00020
00021 typedef struct keyword {
00022 string keyval;
00023 char option;
00024 string key;
00025 string val;
00026 string help;
00027 int count;
00028 int upd;
00029 int system;
00030
00031 } Keyword;
00032
00033
00034 class Program {
00035
00036 private:
00037
00038
00039
00040
00041 static string keywords[];
00042 static string usage;
00043 static string version;
00044 static string description;
00045 static string examples;
00046
00047
00048
00049 string package;
00050 string progname;
00051 int argc;
00052 string *argv;
00053
00054 int nkeys;
00055 Keyword *keys;
00056
00057 static Program *self;
00058
00059 public:
00060
00061 Program();
00062 Program(string);
00063 ~Program();
00064
00065
00066
00067 void init(int argc, string *argv);
00068 void append(string skeyvalhelp);
00069 void parse(void);
00070 int go(void);
00071 void fini(void);
00072 Program *main(void);
00073
00074
00075
00076 void show(void);
00077
00078
00079
00080 string get(string key);
00081 int count(string key);
00082 int get_debug(void);
00083 int dec_error(void);
00084
00085 int get_argc(void);
00086 char **get_argv(void);
00087
00088 private:
00089
00090 int debug_level;
00091 int error_level;
00092 int help_level;
00093
00094 void set_debug(string);
00095 void set_error(string);
00096 void set_help(string);
00097
00098 void help(void);
00099 void addkey(int, string, int);
00100 int findkey(string);
00101
00102 };
00103
00104
00105
00106 extern int hasvalue(string);
00107 extern int isdefault(string);
00108
00109 extern string getparam(string);
00110 extern real getrparam(string);
00111 extern int getiparam(string);
00112
00113 extern int getflag(string);
00114
00115 extern int get_argc(void);
00116 extern char **get_argv(void);
00117
00118 extern void Error(char * ...);
00119 extern void Warning(char *, ...);
00120 extern void Dprintf(int, char *, ...);
00121
00122 #endif