* Fixed svn:eol-style and svn:keywords properties
[fw/sdcc] / sim / ucsim / optioncl.h
index c2b30692076491cb603525c0d6ae0af0991df105..b8b298ca6a36007f1d3bde0c3457272581d6a423 100644 (file)
@@ -79,13 +79,20 @@ public:
   virtual void hide(void) { hidden= DD_TRUE; }
   virtual void show(void) { hidden= DD_FALSE; }
 
-  virtual void print(class cl_console *con) {}
+  virtual void print(class cl_console_base *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);
@@ -109,9 +116,15 @@ public:
   virtual int nuof_options(char *the_name, char *creator);
 
   virtual class cl_option *set_value(char *the_name, cl_base *creator,
-                                    bool value);
+                                     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,
-                                    char *value);
+                                     double value);
 };
 
 
@@ -126,8 +139,8 @@ public:
   virtual ~cl_optref(void);
 
   virtual class cl_option *create(class cl_base *creator,
-                                 enum option_type type,
-                                 char *the_name, char *help);
+                                  enum option_type type,
+                                  char *the_name, char *help);
   virtual void default_option(char *the_name);
   virtual class cl_option *use(void);
   virtual class cl_option *use(char *the_name);
@@ -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 void print(class cl_console_base *con);
+  virtual char *get_type_name(void) { return("boolean"); }
   virtual void set_value(char *s);
 };
 
@@ -157,27 +171,55 @@ 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_base *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_base *con);
+  virtual char *get_type_name(void) { return("pointer"); }
+};
 
-  virtual void print(class cl_console *con);
-  //virtual void get_value(char *val);
-  //virtual void set_value(char *opt);
+
+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_base *con);
+  virtual char *get_type_name(void) { return("integer"); }
+  virtual void set_value(char *s);
 };
 
 
-class cl_cons_debug_opt: public cl_option
+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_base *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;
 public:
   cl_cons_debug_opt(class cl_app *the_app, char *Iid, char *Ihelp);
 
-  virtual void print(class cl_console *con);
+  virtual void print(class cl_console_base *con);
 
   virtual void get_value(bool *val);
 
   virtual void set_value(bool);
   virtual void set_value(char *s);
-};
+};*/
 
 
 #endif