home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / program / language / grs / g / BootClass < prev    next >
Encoding:
Text File  |  1991-04-10  |  4.2 KB  |  186 lines

  1. (* bootstrap definitions of class etc.*)
  2.  
  3. string function itos (integer i)
  4. {
  5. };
  6.  
  7. integer function stoi (string s)
  8. {
  9. };
  10.  
  11. null function run ((null) expression ne)
  12. {
  13. };
  14.  
  15. null function summon ((null) expression ne)
  16. {
  17. };
  18.  
  19. null function sys_add_slot( (null) expression ne )
  20. {
  21. };
  22.  
  23. null function beep()
  24. {
  25. };
  26.  
  27. null function display_tree( (null) expression ne )
  28. {
  29. };
  30.  
  31. null function cls()
  32. {
  33. };
  34.  
  35. integer function rnd( integer s )
  36. {
  37. };
  38.  
  39.  
  40. null function tab( integer x; integer y )
  41. {
  42. };
  43.  
  44. instanceof meta_class class;
  45.  
  46. class := meta_class.new("class",
  47.                        [
  48.                        {
  49.                           null function new(string s)
  50.                           {
  51.                              sys_create_class_object(s);
  52.                           };
  53.                        },
  54.                        {
  55.                           null function add_method( (null) expression ne )
  56.                           {
  57.                              sys_add_method(ne);
  58.                           };
  59.                        },
  60.                        {
  61.                           null function add_slot( (null) expression ne )
  62.                           {
  63.                              sys_add_slot(ne);
  64.                           };
  65.                        },
  66.                        {
  67.                           null function describe_object()
  68.                           {
  69.                              sys_describe_object();
  70.                           };
  71.                        },
  72.                        {
  73.                          null function get_instances()
  74.                          {
  75.                             sys_get_instances();
  76.                          };
  77.                        },
  78.                        {
  79.                          null function delete_slot(string s; integer f)
  80.                          {
  81.                             sys_delete_slot(s,f);
  82.                          };
  83.                        },
  84.                        {
  85.                          null function delete_method(string s; integer f)
  86.                          {
  87.                             sys_delete_method(s,f);
  88.                          };
  89.                        },
  90.                        {
  91.                           null function replace_method(
  92.                                 string s; (null) expression m )
  93.                           {
  94.                              sys_replace_method(s,m);
  95.                           };
  96.                        },
  97.                        {
  98.                           listof string function get_slots()
  99.                           {
  100.                              return(sys_get_slots());
  101.                           };
  102.                         }
  103.                        ],
  104.                        []
  105.                       );
  106.  
  107. (* the following relies on current_object being left as meta_class *)
  108. (* (as the last thing before a dot was meta_class)                 *)
  109. (* If I ever have to change it so that current_object is restored  *)
  110. (* at the end of executing a method, then this may not work, and   *)
  111. (* may need a cludge                                               *)
  112. (* the easiest way would be to get meta_class.add_method           *)
  113. (* bootstrapped and the rest can be added as below                 *)
  114.  
  115. sys_add_method(
  116.    {
  117.       null function get_instances()
  118.       {
  119.          sys_get_instances();
  120.       };
  121.    }
  122. );
  123.  
  124. sys_add_method(
  125.    {
  126.       null function add_method( (null) expression ne )
  127.       {
  128.          sys_add_method(ne);
  129.       };
  130.    }
  131. );
  132.  
  133. sys_add_method(
  134.    {
  135.       null function describe_object()
  136.       {
  137.          sys_describe_object();
  138.       };
  139.    }
  140. );
  141.  
  142. sys_add_method(
  143.    {
  144.       null function delete_slot( string slotname; integer flag )
  145.       {
  146.          sys_delete_slot( slotname, flag );
  147.       };
  148.    }
  149. );
  150.  
  151. sys_add_method(
  152.    {
  153.       null function delete_method( string methname; integer flag )
  154.       {
  155.          sys_delete_method( methname, flag );
  156.       };
  157.    }
  158. );
  159.  
  160. sys_add_method(
  161.    {
  162.       null function replace_method( string methname; (null) expression m )
  163.       {
  164.          sys_replace_method( methname, m );
  165.       };
  166.    }
  167. );
  168.  
  169. sys_add_method(
  170.    {
  171.       listof string function get_slots()
  172.       {
  173.          return(sys_get_slots());
  174.       };
  175.    }
  176. );
  177.  
  178. sys_add_method(
  179.      {
  180.         null function add_slot( (null) expression ne )
  181.         {
  182.            sys_add_slot(ne);
  183.         };
  184.      }
  185. );
  186.