X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=sim%2Fucsim%2Foptioncl.h;h=da4d4baa0df9e9af014d5d883b7dacbc8bdb5451;hb=f27da39dbcab5678aca6d8462f1cc37a643f37e9;hp=c2b30692076491cb603525c0d6ae0af0991df105;hpb=7fe573ea83f6e0762dc73bc493f15fa2a8f6273d;p=fw%2Fsdcc diff --git a/sim/ucsim/optioncl.h b/sim/ucsim/optioncl.h index c2b30692..da4d4baa 100644 --- a/sim/ucsim/optioncl.h +++ b/sim/ucsim/optioncl.h @@ -80,12 +80,19 @@ public: virtual void show(void) { hidden= DD_FALSE; } virtual void print(class cl_console *con) {} + virtual char *get_type_name(void) { return("non"); } + virtual union option_value *get_value(void) { return(&value); } virtual void get_value(bool *val); virtual void get_value(char **val); - virtual union option_value *get_value(void) { return(&value); } - virtual void set_value(bool); - virtual void set_value(char *s); + virtual void get_value(void **val); + virtual void get_value(long *val); + virtual void get_value(double *val); + virtual void set_value(bool opt); + virtual void set_value(char *opt); + virtual void set_value(void *opt); + virtual void set_value(long opt); + virtual void set_value(double opt); virtual void new_reference(class cl_optref *ref); virtual void del_reference(class cl_optref *ref); @@ -96,7 +103,7 @@ public: class cl_options: public cl_sorted_list { public: - cl_options(void): cl_sorted_list(2, 2) { Duplicates= DD_TRUE; } + cl_options(void): cl_sorted_list(2, 2, "options") { Duplicates= DD_TRUE; } virtual void *key_of(void *item); virtual int compare(void *key1, void *key2); virtual void new_option(class cl_option *opt); @@ -112,6 +119,12 @@ public: bool value); virtual class cl_option *set_value(char *the_name, cl_base *creator, char *value); + virtual class cl_option *set_value(char *the_name, cl_base *creator, + void *value); + virtual class cl_option *set_value(char *the_name, cl_base *creator, + long value); + virtual class cl_option *set_value(char *the_name, cl_base *creator, + double value); }; @@ -137,6 +150,9 @@ public: virtual bool get_value(bool); virtual char *get_value(char *); + virtual void *get_value(void *); + virtual long get_value(long); + virtual double get_value(double); }; @@ -144,10 +160,8 @@ class cl_bool_option: public cl_option { public: cl_bool_option(class cl_base *the_creator, char *aname, char *Ihelp); - virtual void print(class cl_console *con); - //virtual void get_value(bool *val); - //virtual void set_value(bool); + virtual char *get_type_name(void) { return("boolean"); } virtual void set_value(char *s); }; @@ -157,14 +171,42 @@ class cl_string_option: public cl_option public: cl_string_option(class cl_base *the_creator, char *aname, char *Ihelp); virtual class cl_option &operator=(class cl_option &o); + virtual void print(class cl_console *con); + virtual char *get_type_name(void) { return("string"); } +}; + +class cl_pointer_option: public cl_option +{ +public: + cl_pointer_option(class cl_base *the_creator, char *aname, char *Ihelp); + virtual class cl_option &operator=(class cl_option &o); virtual void print(class cl_console *con); - //virtual void get_value(char *val); - //virtual void set_value(char *opt); + virtual char *get_type_name(void) { return("pointer"); } }; -class cl_cons_debug_opt: public cl_option +class cl_number_option: public cl_option +{ +public: + cl_number_option(class cl_base *the_creator, char *aname, char *Ihelp); + virtual void print(class cl_console *con); + virtual char *get_type_name(void) { return("integer"); } + virtual void set_value(char *s); +}; + + +class cl_float_option: public cl_option +{ +public: + cl_float_option(class cl_base *the_creator, char *aname, char *Ihelp); + virtual void print(class cl_console *con); + virtual char *get_type_name(void) { return("float"); } + virtual void set_value(char *s); +}; + + +/*class cl_cons_debug_opt: public cl_option { public: class cl_app *app; @@ -177,7 +219,7 @@ public: virtual void set_value(bool); virtual void set_value(char *s); -}; +};*/ #endif