home *** CD-ROM | disk | FTP | other *** search
- (* bootstrap definitions of class etc.*)
-
- string function itos (integer i)
- {
- };
-
- integer function stoi (string s)
- {
- };
-
- null function run ((null) expression ne)
- {
- };
-
- null function summon ((null) expression ne)
- {
- };
-
- null function sys_add_slot( (null) expression ne )
- {
- };
-
- null function beep()
- {
- };
-
- null function display_tree( (null) expression ne )
- {
- };
-
- null function cls()
- {
- };
-
- integer function rnd( integer s )
- {
- };
-
-
- null function tab( integer x; integer y )
- {
- };
-
- instanceof meta_class class;
-
- class := meta_class.new("class",
- [
- {
- null function new(string s)
- {
- sys_create_class_object(s);
- };
- },
- {
- null function add_method( (null) expression ne )
- {
- sys_add_method(ne);
- };
- },
- {
- null function add_slot( (null) expression ne )
- {
- sys_add_slot(ne);
- };
- },
- {
- null function describe_object()
- {
- sys_describe_object();
- };
- },
- {
- null function get_instances()
- {
- sys_get_instances();
- };
- },
- {
- null function delete_slot(string s; integer f)
- {
- sys_delete_slot(s,f);
- };
- },
- {
- null function delete_method(string s; integer f)
- {
- sys_delete_method(s,f);
- };
- },
- {
- null function replace_method(
- string s; (null) expression m )
- {
- sys_replace_method(s,m);
- };
- },
- {
- listof string function get_slots()
- {
- return(sys_get_slots());
- };
- }
- ],
- []
- );
-
- (* the following relies on current_object being left as meta_class *)
- (* (as the last thing before a dot was meta_class) *)
- (* If I ever have to change it so that current_object is restored *)
- (* at the end of executing a method, then this may not work, and *)
- (* may need a cludge *)
- (* the easiest way would be to get meta_class.add_method *)
- (* bootstrapped and the rest can be added as below *)
-
- sys_add_method(
- {
- null function get_instances()
- {
- sys_get_instances();
- };
- }
- );
-
- sys_add_method(
- {
- null function add_method( (null) expression ne )
- {
- sys_add_method(ne);
- };
- }
- );
-
- sys_add_method(
- {
- null function describe_object()
- {
- sys_describe_object();
- };
- }
- );
-
- sys_add_method(
- {
- null function delete_slot( string slotname; integer flag )
- {
- sys_delete_slot( slotname, flag );
- };
- }
- );
-
- sys_add_method(
- {
- null function delete_method( string methname; integer flag )
- {
- sys_delete_method( methname, flag );
- };
- }
- );
-
- sys_add_method(
- {
- null function replace_method( string methname; (null) expression m )
- {
- sys_replace_method( methname, m );
- };
- }
- );
-
- sys_add_method(
- {
- listof string function get_slots()
- {
- return(sys_get_slots());
- };
- }
- );
-
- sys_add_method(
- {
- null function add_slot( (null) expression ne )
- {
- sys_add_slot(ne);
- };
- }
- );
-