home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / program / language / gofer / Sources / h / connect < prev    next >
Encoding:
Text File  |  1993-02-12  |  8.2 KB  |  196 lines

  1. /* --------------------------------------------------------------------------
  2.  * connect.h:    Copyright (c) Mark P Jones 1991-1993.   All rights reserved.
  3.  *        See goferite.h for details and conditions of use etc...
  4.  *        Gofer version 2.28 January 1993
  5.  *
  6.  * Connections between components of the Gofer system
  7.  * ------------------------------------------------------------------------*/
  8.  
  9. /* --------------------------------------------------------------------------
  10.  * Standard data:
  11.  * ------------------------------------------------------------------------*/
  12.  
  13. extern Name  nameFalse,   nameTrue;    /* primitive constructor functions */
  14. extern Name  nameNil,     nameCons;
  15. extern Name  nameFatbar,  nameFail;    /* primitives reqd for translation */
  16. extern Name  nameIf,      nameSel;
  17. extern Name  nameMinus,      nameDivide;
  18. extern Name  nameUndefMem;         /* undefined member primitive       */
  19. extern Name  nameError;            /* for runtime error messages       */
  20. extern Name  nameBlackHole;        /* for GC-detected black hole       */
  21. extern Name  nameAnd,      nameOr;    /* for optimisation of && and ||   */
  22. extern Name  nameOtherwise;
  23.  
  24. extern Name  nameResult,  nameBind;    /* for translation of monad comps  */
  25. extern Name  nameZero;
  26.  
  27. extern Name  namePrint;            /* printing primitive           */
  28.  
  29. extern Name  nameReadFile,   nameWriteFile;/* I/O name primitives       */
  30. extern Name  nameAppendFile, nameReadChan;
  31. extern Name  nameAppendChan, nameEcho;
  32. extern Name  nameGetArgs,    nameGetProgName;
  33. extern Name  nameGetEnv;
  34. extern Name  nameSuccess,    nameStr;
  35. extern Name  nameFailure,    nameStrList;
  36. extern Name  nameWriteError;
  37. extern Name  nameReadError,  nameSearchError;
  38. extern Name  nameFormatError,nameOtherError;
  39.  
  40. #ifdef LAMBDAVAR
  41. extern Name  nameVar;            /* internal lambda var constructor */
  42. extern Type  typeProg;            /* type of a lambda var program       */
  43. extern Void  lvExecute    Args((Cell));    /* lambda var executor           */
  44. #endif
  45. #ifdef LAMBDANU
  46. extern Name nameTag;            /* internal lambda nu constructor  */
  47. extern Type typeLnProg;            /* type of a lambda nu prog       */
  48. extern Void lnExecute   Args((Cell));    /* Lambda nu executor           */
  49. #endif
  50.  
  51. extern Text  textPlus,    textMult;    /* used to recognise n+k/c*n pats  */
  52.  
  53. extern String repeatStr;        /* repeat last command string       */
  54.  
  55. extern Type  typeString;        /* String  == [Char]           */
  56. extern Type  typeDialogue;        /* Dialogue== [Response]->[Request]*/
  57.  
  58. extern Cell  *CStackBase;        /* pointer to base of C stack       */
  59.  
  60. extern List  tyconDefns;        /* list of type constructor defns  */
  61. extern List  typeInDefns;        /* list of synonym restrictions       */
  62. extern List  valDefns;            /* list of value definitions       */
  63. extern List  opDefns;            /* list of operator definitions    */
  64. extern List  classDefns;        /* list of class definitions       */
  65. extern List  instDefns;            /* list of instance definitions    */
  66. extern List  overDefns;            /* list of overloaded member defns */
  67. extern Cell  inputExpr;            /* evaluator input expression      */
  68. extern Addr  inputCode;            /* Code for compiled input expr    */
  69.  
  70. extern Int   whnfArgs;            /* number of args of term in whnf  */
  71. extern Cell  whnfHead;            /* head of term in whnf            */
  72. extern Int   whnfInt;            /* integer value of term in whnf   */
  73. extern Float whnfFloat;            /* float value of term in whnf       */
  74. extern Long  numReductions;        /* number of reductions used       */
  75. extern Long  numCells;            /* number of cells allocated       */
  76. extern Int   numberGcs;            /* number of garbage collections   */
  77.  
  78. extern Bool  gcMessages;        /* TRUE => print GC messages       */
  79. extern Bool  literateScripts;        /* TRUE => default lit scripts     */
  80. extern Bool  literateErrors;        /* TRUE => report errs in lit scrs */
  81. extern Bool  useConformality;        /* TRUE => check patbind conform'ty*/
  82. extern Bool  anyEvidence;        /* TRUE => don't search for best ev*/
  83. extern Bool  coerceNumLiterals;        /* TRUE => insert fromInteger calls*/
  84.                     /*       etc for numeric literals*/
  85. extern Bool  andorOptimise;        /* TRUE => optimise uses of &&, || */
  86. extern Bool  showDicts;            /* TRUE => show dictionary params  */
  87.                     /*       in output expressions   */
  88. extern Bool  catchAmbigs;        /* TRUE => functions with ambig.   */
  89.                     /*       types produce error       */
  90. extern Bool  failOnError;        /* TRUE => error produces immediate*/
  91.                     /*       termination           */
  92.  
  93. extern Int   maxEvidLevel;        /* maximum no of selects in evid   */
  94. extern Bool  silentEvFail;        /* TRUE => keep quiet if maxEvidLev*/
  95.                     /*        is exceeded.           */
  96.  
  97. extern Bool  kindExpert;        /* TRUE => display kind errors in  */
  98.                     /*        full detail           */
  99. extern Bool  overSingleton;        /* TRUE => overload singleton list */
  100.                     /*       notation, [x]       */
  101.  
  102. /* --------------------------------------------------------------------------
  103.  * Function prototypes etc...
  104.  * ------------------------------------------------------------------------*/
  105.  
  106. extern Void   everybody        Args((Int));
  107.  
  108. #define RESET   1        /* reset subsystem                         */
  109. #define MARK    2        /* mark parts of graph in use by subsystem */
  110. #define INSTALL 3        /* install subsystem (executed once only)  */
  111. #define EXIT    4        /* Take action immediately before exit()   */
  112. #define BREAK   5        /* Take action after program break       */
  113. #define PRELUDE 6        /* Init. once prelude Tycons/Classes known */
  114.  
  115. typedef long   Target;
  116. extern  Void   setGoal          Args((String, Target));
  117. extern  Void   soFar            Args((Target));
  118. extern  Void   done             Args((Void));
  119. extern  String fromEnv        Args((String,String));
  120.  
  121. extern  Void   storage          Args((Int));
  122. extern  Void   setLastExpr    Args((Cell));
  123. extern  Cell   getLastExpr    Args((Void));
  124. extern    List   addNamesMatching Args((String,List));
  125.  
  126. extern  Void   input            Args((Int));
  127. extern  Void   consoleInput     Args((String));
  128. extern  Void   projInput    Args((String));
  129. extern  Void   parseScript      Args((String,Long));
  130. extern  Void   parseExp         Args((Void));
  131. extern  String readFilename     Args((Void));
  132. extern  String readLine        Args((Void));
  133. extern  Syntax defaultSyntax    Args((Text));
  134. extern  String unlexChar        Args((Char,Char));
  135.  
  136. extern  Void   staticAnalysis    Args((Int));
  137. extern  Void   tyconDefn    Args((Int,Cell,Cell,Cell));
  138. extern  Void   setTypeIns    Args((List));
  139. extern  Void   clearTypeIns    Args((Void));
  140. extern  Bool   isAmbiguous    Args((Type));
  141. extern  Void   ambigError    Args((Int,String,Cell,Type));
  142. extern  Void   classDefn    Args((Int,Cell,Cell));
  143. extern  Void   instDefn        Args((Int,Cell,Cell));
  144. extern  Void   primDefn        Args((Int,List,Cell));
  145. extern  Void   checkExp        Args((Void));
  146. extern  Void   checkDefns    Args((Void));
  147.  
  148. extern  Void   typeChecker    Args((Int));
  149. extern  Type   typeCheckExp    Args((Void));
  150. extern  Void   typeCheckDefns    Args((Void));
  151. extern  Void   insertInst    Args((Int,Class,Inst));
  152. extern  Cell   rhsExpr        Args((Cell));
  153. extern  Int    rhsLine        Args((Cell));
  154. extern  Bool   typeMatches    Args((Type,Type));
  155. extern  Bool   typeInstOf    Args((Type,Type));
  156. extern  Dict   listMonadDict    Args((Void));
  157.  
  158. extern  Void   kindTyconGroup    Args((List));
  159. extern  Void   kindClassGroup    Args((List));
  160. extern  Void   kindSigType    Args((Int,Type));
  161. extern  Void   kindInst        Args((Inst,Int));
  162.  
  163. extern  Void   compiler         Args((Cell));
  164. extern  Void   compileDefns     Args((Void));
  165. extern  Void   compileExp       Args((Void));
  166. extern  Bool   refutable    Args((Cell));
  167. extern  Int    discrArity       Args((Cell));
  168.  
  169. extern  Void   machine          Args((Int));
  170. extern  Addr   codeGen          Args((Name,Int,Cell));
  171. extern  Void   unwind           Args((Cell));
  172. extern  Void   eval             Args((Cell));
  173. extern  Cell   evalWithNoError  Args((Cell));
  174. extern  Void   evalFails        Args((StackPtr));
  175. extern  Cell   graphForExp    Args((Void));
  176.  
  177. extern  Void   builtIn          Args((Int));
  178. extern  Void   abandon        Args((String,Cell));
  179. extern  Cell   outputString    Args((FILE *,Cell,Bool));
  180. extern  Void   dialogue        Args((Cell));
  181. extern  Cell   consChar        Args((Char));
  182.  
  183. extern  Void   machdep          Args((Int));
  184. extern  String timeString    Args((Void));
  185. extern  Int    shellEsc        Args((String));
  186. extern  Int    getTerminalWidth Args((Void));
  187. extern  Void   normalTerminal    Args((Void));
  188. extern  Void   noechoTerminal    Args((Void));
  189. extern  Int    readTerminalChar Args((Void));
  190. extern  Void   gcStarted    Args((Void));
  191. extern  Void   gcScanning    Args((Void));
  192. extern  Void   gcRecovered    Args((Int));
  193. extern  Void   gcCStack        Args((Void));
  194.  
  195. /*-------------------------------------------------------------------------*/
  196.