CCAFFEINE
0.8.8
|
00001 #ifndef CmdParse_h_seen 00002 #define CmdParse_h_seen 00003 00004 00005 // requires 00006 // #include "jc++/jc++.h" 00007 // #include "jc++/util/jc++lang.h" 00008 // #include "jc++/util/jc++util.h" 00009 // #include "cmd/CmdContext.h" 00010 // #include "cmd/CmdAction.h" 00011 // #include "cmd/CmdActionExit.h" 00012 // #include "cmd/CmdActionHelp.h" 00013 00019 class CmdParse : public virtual JCPN(Object) { 00020 00021 private: 00023 JCPN(Vector) *alist; 00025 CmdContext *cc; 00027 void clearArgs(JCPN(Vector) * args); 00028 00029 public: 00030 00032 CDELETE CmdParse(CmdContext *icc) ; 00033 00034 ~CmdParse() ; 00035 00042 void addAction(CmdAction *c) ; 00043 00044 00045 00048 CmdAction *getAction(char *s) ; 00049 00054 CmdContext *getContext(); 00055 00056 // The following holds for all addXxxArg functions: 00057 // returns 0 if ok, -1 if error in next token, 1 if no next token. 00058 00061 int addClassArg(JCPN(StringTokenizer) *st, JCPN(Vector) *args, JCPN(StringBuffer) *cb) ; 00062 00063 00066 int addInstanceArg(JCPN(StringTokenizer) *st, JCPN(Vector) *args, JCPN(StringBuffer) *cb) ; 00067 00068 00070 int addLine(JCPN(StringTokenizer) *st, JCPN(Vector) *args, JCPN(StringBuffer) *cb) ; 00071 00072 00074 int addStringArg(JCPN(StringTokenizer) *st, JCPN(Vector) *args, JCPN(StringBuffer) *cb) ; 00075 00077 int addDoubleArg(JCPN(StringTokenizer) *st, JCPN(Vector) *args, JCPN(StringBuffer) *cb) ; 00078 00080 int addFloatArg(JCPN(StringTokenizer) *st, JCPN(Vector) *args, JCPN(StringBuffer) *cb) ; 00081 00083 int addIntegerArg(JCPN(StringTokenizer) *st, JCPN(Vector) *args, JCPN(StringBuffer) *cb) ; 00084 00086 int addLongArg(JCPN(StringTokenizer) *st, JCPN(Vector) *args, JCPN(StringBuffer) *cb) ; 00087 00089 int addBooleanArg(JCPN(StringTokenizer) *st, JCPN(Vector) *args, JCPN(StringBuffer) *cb) ; 00090 00091 00096 int parse(); 00097 00099 void setContextVerbose(bool noisyHelp); 00100 }; 00101 #endif //CmdParse_h_seen