CCAFFEINE  0.8.8
CmdParse.h
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