X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=sim%2Fucsim%2Fcmd.src%2Fcommandcl.h;h=36dc7767a9f7a4e333c92843cc9fad2b7640ceeb;hb=f27da39dbcab5678aca6d8462f1cc37a643f37e9;hp=3bec252d34d639420b9cb5f121199221946907d3;hpb=7fe573ea83f6e0762dc73bc493f15fa2a8f6273d;p=fw%2Fsdcc diff --git a/sim/ucsim/cmd.src/commandcl.h b/sim/ucsim/cmd.src/commandcl.h index 3bec252d..36dc7767 100644 --- a/sim/ucsim/cmd.src/commandcl.h +++ b/sim/ucsim/cmd.src/commandcl.h @@ -65,6 +65,12 @@ public: virtual ~cl_cmdline(void); virtual int init(void); +private: + virtual void split_out_string(char **_start, char **_end); + virtual void split_out_output_redirection(char **_start, char **_end); + virtual void split_out_bit(char *dot, char *param_str); + virtual void split_out_array(char *dot, char *param_str); +public: virtual int split(void); virtual int shift(void); virtual int repeat(void); @@ -72,6 +78,7 @@ public: virtual void insert_param(int pos, class cl_cmd_arg *param); virtual bool syntax_match(class cl_uc *uc, char *syntax); virtual bool set_data_list(class cl_cmd_arg *parm, int *iparm); + virtual int nuof_params(void) { return(params->get_count()); } private: char *skip_delims(char *start); }; @@ -81,6 +88,8 @@ private: * Command and container */ +class cl_cmdset; + // simple command class cl_cmd: public cl_base { @@ -99,6 +108,7 @@ public: char *long_hlp); virtual ~cl_cmd(void); + virtual class cl_cmdset *get_subcommands(void) { return(0); } virtual void add_name(char *nam); virtual int name_match(char *aname, int strict); virtual int name_match(class cl_cmdline *cmdline, int strict); @@ -222,13 +232,13 @@ class cl_cmdset: public cl_list { public: //class cl_sim *sim; - class cl_cmd *last_command; + //class cl_cmd *last_command; public: cl_cmdset(void); //cl_cmdset(class cl_sim *asim); - virtual class cl_cmd *get_cmd(class cl_cmdline *cmdline); + virtual class cl_cmd *get_cmd(class cl_cmdline *cmdline, bool accept_last); virtual class cl_cmd *get_cmd(char *cmd_name); virtual void del(char *nam); virtual void replace(char *nam, class cl_cmd *cmd); @@ -248,6 +258,7 @@ public: class cl_cmdset *acommands); virtual ~cl_super_cmd(void); + virtual class cl_cmdset *get_subcommands(void) { return(commands); } virtual int work(class cl_app *app, class cl_cmdline *cmdline, class cl_console *con); };