* device/include/pic16/pic18f*.h: add bit aliases in INTCONbits_t
[fw/sdcc] / sim / ucsim / optioncl.h
index c2b30692076491cb603525c0d6ae0af0991df105..2e8ad8a1ac326de84dd953d36a338e4add2678f4 100644 (file)
@@ -70,7 +70,7 @@ public:
   bool hidden;
 
 public:
-  cl_option(class cl_base *the_creator, char *aname, char *Ihelp);
+  cl_option(class cl_base *the_creator, const char *aname, const char *Ihelp);
   virtual class cl_option &operator=(class cl_option &o);
   virtual ~cl_option(void);
   virtual void pre_remove(void);
@@ -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 const 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,22 +103,28 @@ public:
 class cl_options: public cl_sorted_list
 {
 public:
-  cl_options(void): cl_sorted_list(2, 2) { Duplicates= DD_TRUE; }
-  virtual void *key_of(void *item);
-  virtual int compare(void *key1, void *key2);
+  cl_options(void): cl_sorted_list(2, 2, "options") { Duplicates= DD_TRUE; }
+  virtual const void *key_of(void *item);
+  virtual int compare(const void *key1, const void *key2);
   virtual void new_option(class cl_option *opt);
   virtual void del_option(class cl_option *opt);
-  virtual class cl_option *get_option(char *the_name);
-  virtual class cl_option *get_option(char *the_name, class cl_base *creator);
-  virtual class cl_option *get_option(char *the_name, char *creator);
+  virtual class cl_option *get_option(const char *the_name);
+  virtual class cl_option *get_option(const char *the_name, class cl_base *creator);
+  virtual class cl_option *get_option(const char *the_name, char *creator);
   virtual class cl_option *get_option(int idx);
   virtual int nuof_options(char *the_name);
   virtual int nuof_options(char *the_name, char *creator);
 
-  virtual class cl_option *set_value(char *the_name, cl_base *creator,
-                                    bool value);
-  virtual class cl_option *set_value(char *the_name, cl_base *creator,
-                                    char *value);
+  virtual class cl_option *set_value(const char *the_name, cl_base *creator,
+                                     bool value);
+  virtual class cl_option *set_value(const char *the_name, cl_base *creator,
+                                     char *value);
+  virtual class cl_option *set_value(const char *the_name, cl_base *creator,
+                                     void *value);
+  virtual class cl_option *set_value(const char *the_name, cl_base *creator,
+                                     long value);
+  virtual class cl_option *set_value(const char *the_name, cl_base *creator,
+                                     double value);
 };
 
 
@@ -126,28 +139,29 @@ public:
   virtual ~cl_optref(void);
 
   virtual class cl_option *create(class cl_base *creator,
-                                 enum option_type type,
-                                 char *the_name, char *help);
-  virtual void default_option(char *the_name);
+                                  enum option_type type,
+                                  const char *the_name, const char *help);
+  virtual void default_option(const char *the_name);
   virtual class cl_option *use(void);
-  virtual class cl_option *use(char *the_name);
+  virtual class cl_option *use(const char *the_name);
   virtual void option_changed(void) {}
   virtual void option_removing(void);
   virtual class cl_base *get_owner(void) { return(owner); }
 
   virtual bool get_value(bool);
-  virtual char *get_value(char *);
+  virtual char *get_value(const char *);
+  virtual void *get_value(void *);
+  virtual long get_value(long);
+  virtual double get_value(double);
 };
 
 
 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);
+  cl_bool_option(class cl_base *the_creator, const char *aname, const char *Ihelp);
+  virtual void print(class cl_console_base *con);
+  virtual const char *get_type_name(void) { return("boolean"); }
   virtual void set_value(char *s);
 };
 
@@ -155,29 +169,57 @@ public:
 class cl_string_option: public cl_option
 {
 public:
-  cl_string_option(class cl_base *the_creator, char *aname, char *Ihelp);
+  cl_string_option(class cl_base *the_creator, const char *aname, const char *Ihelp);
   virtual class cl_option &operator=(class cl_option &o);
+  virtual void print(class cl_console_base *con);
+  virtual const char *get_type_name(void) { return("string"); }
+};
 
-  virtual void print(class cl_console *con);
-  //virtual void get_value(char *val);
-  //virtual void set_value(char *opt);
+
+class cl_pointer_option: public cl_option
+{
+public:
+  cl_pointer_option(class cl_base *the_creator, const char *aname, const char *Ihelp);
+  virtual class cl_option &operator=(class cl_option &o);
+  virtual void print(class cl_console_base *con);
+  virtual const 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, const char *aname, const char *Ihelp);
+  virtual void print(class cl_console_base *con);
+  virtual const 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, const char *aname, const char *Ihelp);
+  virtual void print(class cl_console_base *con);
+  virtual const 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