home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / program / misc / mas / mashelp / maslispu.def < prev    next >
Encoding:
Modula Definition  |  1990-10-24  |  4.5 KB  |  153 lines

  1.  
  2. (* MAS Lisp Utility Definition Module. *)
  3. DEFINITION MODULE MASLISPU;
  4.  
  5. (* Import lists and declarations. *)
  6.  
  7.   FROM MASSTOR IMPORT LIST;
  8.  
  9.   FROM Portab IMPORT STRING;
  10.  
  11.   CONST  EXPR = 1;
  12.  
  13. (* Types, S-Expresion Types and Indicators. *)
  14.  
  15.   TYPE
  16.     PROCF0 = PROCEDURE(): LIST;
  17.     PROCF1 = PROCEDURE(LIST): LIST;
  18.     PROCF2 = PROCEDURE(LIST, LIST): LIST;
  19.     PROCF3 = PROCEDURE(LIST, LIST, LIST): LIST;
  20.     PROCF4 = PROCEDURE(LIST, LIST, LIST, LIST): LIST;
  21.  
  22.     PROCP0 = PROCEDURE();
  23.     PROCP1 = PROCEDURE(LIST);
  24.     PROCP2 = PROCEDURE(LIST, LIST);
  25.     PROCP3 = PROCEDURE(LIST, LIST, LIST);
  26.  
  27.     PROCP0V1 = PROCEDURE(VAR LIST);
  28.     PROCP0V2 = PROCEDURE(VAR LIST, VAR LIST);
  29.  
  30.     PROCP1V1 = PROCEDURE(LIST, VAR LIST);
  31.     PROCP1V2 = PROCEDURE(LIST, VAR LIST, VAR LIST);
  32.     PROCP1V3 = PROCEDURE(LIST, VAR LIST, VAR LIST, VAR LIST);
  33.  
  34.     PROCP2V1 = PROCEDURE(LIST, LIST, VAR LIST);
  35.     PROCP2V2 = PROCEDURE(LIST, LIST, VAR LIST, VAR LIST);
  36.     PROCP2V3 = PROCEDURE(LIST, LIST, VAR LIST, VAR LIST, VAR LIST);
  37.  
  38.     PROCP3V1 = PROCEDURE(LIST, LIST, LIST, VAR LIST);
  39.     PROCP3V2 = PROCEDURE(LIST, LIST, LIST, VAR LIST, VAR LIST);
  40.     PROCP3V3 = PROCEDURE(LIST, LIST, LIST, VAR LIST, VAR LIST, VAR LIST);
  41.  
  42.  
  43.   VAR EXTYP, ARITY, SUBR : LIST;   (*indicators*)
  44.  
  45.  
  46. (* Procedure declarations. *)
  47.  
  48. PROCEDURE CallCompiled(F, PI : LIST; VAR PO : LIST; VAR fu : BOOLEAN);
  49. (*Call compiled function or procedure. F is a function or procedure 
  50. symbol. PI is the list of input parameters. fu is TRUE if F is a 
  51. function and FALSE if F is a procedure. PO is a list of output 
  52. parameters if F is a procedure and PO is the output parameter if 
  53. F is a function. *)
  54.  
  55.  
  56. PROCEDURE Compiledp0(F : PROCP0; S : STRING);
  57. (*Compiled function declaration. F is a Modula-2 procedure, S is 
  58. the print name of F. *)
  59.  
  60.  
  61. PROCEDURE Compiledp1(F : PROCP1; S : STRING);
  62. (*Compiled function declaration. F is a Modula-2 procedure, S is 
  63. the print name of F. *)
  64.  
  65.  
  66. PROCEDURE Compiledp2(F : PROCP2; S : STRING);
  67. (*Compiled function declaration. F is a Modula-2 procedure, S is 
  68. the print name of F. *)
  69.  
  70.  
  71. PROCEDURE Compiledp3(F : PROCP3; S : STRING);
  72. (*Compiled function declaration. F is a Modula-2 procedure, S is 
  73. the print name of F. *)
  74.  
  75.  
  76. PROCEDURE Compiledf0(F : PROCF0; S : STRING);
  77. (*Compiled function declaration. F is a Modula-2 procedure, S is 
  78. the print name of F. *)
  79.  
  80.  
  81. PROCEDURE Compiledf1(F : PROCF1; S : STRING);
  82. (*Compiled function declaration. F is a Modula-2 procedure, S is 
  83. the print name of F. *)
  84.  
  85.  
  86. PROCEDURE Compiledf2(F : PROCF2; S : STRING);
  87. (*Compiled function declaration. F is a Modula-2 procedure, S is 
  88. the print name of F. *)
  89.  
  90.  
  91. PROCEDURE Compiledf3(F : PROCF3; S : STRING);
  92. (*Compiled function declaration. F is a Modula-2 procedure, S is 
  93. the print name of F. *)
  94.  
  95.  
  96. PROCEDURE Compiledf4(F : PROCF4; S : STRING);
  97. (*Compiled function declaration. F is a Modula-2 procedure, S is 
  98. the print name of F. *)
  99.  
  100.  
  101. PROCEDURE Compiledp1v2(F : PROCP1V2; S : STRING);
  102. (*Compiled function declaration. F is a Modula-2 procedure, S is 
  103. the print name of F. *)
  104.  
  105.  
  106. PROCEDURE Compiledp1v3(F : PROCP1V3; S : STRING);
  107. (*Compiled function declaration. F is a Modula-2 procedure, S is 
  108. the print name of F. *)
  109.  
  110.  
  111. PROCEDURE Compiledp2v2(F : PROCP2V2; S : STRING);
  112. (*Compiled function declaration. F is a Modula-2 procedure, S is 
  113. the print name of F. *)
  114.  
  115.  
  116. PROCEDURE Compiledp2v3(F : PROCP2V3; S : STRING);
  117. (*Compiled function declaration. F is a Modula-2 procedure, S is 
  118. the print name of F. *)
  119.  
  120.  
  121. PROCEDURE Compiledp3v2(F : PROCP3V2; S : STRING);
  122. (*Compiled function declaration. F is a Modula-2 procedure, S is 
  123. the print name of F. *)
  124.  
  125.  
  126. PROCEDURE Compiledp3v3(F : PROCP3V3; S : STRING);
  127. (*Compiled function declaration. F is a Modula-2 procedure, S is 
  128. the print name of F. *)
  129.  
  130.  
  131. PROCEDURE CompSummary();
  132. (*Compiled function and procedure summary. Write out all 
  133. compiled functions with their signature from symbol table SYMTB. *)
  134.  
  135.  
  136. PROCEDURE Declare(VAR X : LIST; S : STRING);
  137. (*Declare. X is declared as symbol with print name S. *)
  138.  
  139.  
  140. PROCEDURE PROCP(X : LIST): BOOLEAN;
  141. (*Procedure Pointer. Test if the symbol X is a compiled function. *)
  142.  
  143.  
  144. PROCEDURE Signature(F : LIST; VAR PI, PO : LIST; VAR def : BOOLEAN);
  145. (*Signature of a compiled function or procedure. F is a function or 
  146. procedure symbol. PI is the number of input parameters. def is TRUE if 
  147. F is defined as compiled function or procedure else def is FALSE. 
  148. PO is the number of output parameters if F is a procedure, 
  149. PO = -1 if F is a function. *)
  150.  
  151.  
  152. END MASLISPU.
  153.