Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/compiler/Semant/elaborate/elabutil.sig
ViewVC logotype

Annotation of /sml/trunk/src/compiler/Semant/elaborate/elabutil.sig

Parent Directory Parent Directory | Revision Log Revision Log


Revision 17 - (view) (download) (as text)
Original Path: sml/branches/SMLNJ/src/compiler/Semant/elaborate/elabutil.sig

1 : monnier 16 (* Copyright 1992 by AT&T Bell Laboratories *)
2 :    
3 :     (* Utility functions to build absyn from ast *)
4 :    
5 :     signature ELABUTIL =
6 :     sig
7 :    
8 :     datatype context
9 :     = TOP (* at top level -- not inside any module, rigid *)
10 :     | INSTR (* inside a rigid structure, i.e. not inside any functor body *)
11 :     | INFCT of {flex: Stamps.stamp -> bool, depth: DebIndex.depth}
12 :     (* predicate recognizing flexible stamps *)
13 :     | INSIG (* within a signature body *)
14 :    
15 :     type compInfo
16 :    
17 :     val debugging : bool ref
18 :     val for : 'a list -> ('a -> unit) -> unit
19 :     val discard : 'a -> unit
20 :     val single : 'a -> 'a list
21 :     val sort3 : (Symbol.symbol * 'a * 'b) list -> (Symbol.symbol * 'a * 'b) list
22 :    
23 :     val EQUALsym : Symbol.symbol
24 :     val bogusID : Symbol.symbol
25 :     val bogusExnID : Symbol.symbol
26 :     val anonParamName : Symbol.symbol
27 :    
28 :     val CONSexp : Absyn.exp
29 :     val CONSpat : Absyn.pat -> Absyn.pat
30 :     val FALSEexp : Absyn.exp
31 :     val FALSEpat : Absyn.pat
32 :     val NILexp : Absyn.exp
33 :     val NILpat : Absyn.pat
34 :     val TRUEexp : Absyn.exp
35 :     val TRUEpat : Absyn.pat
36 :     val TUPLEexp : Absyn.exp list -> Absyn.exp
37 :     val TPSELexp : Absyn.exp * int -> Absyn.exp
38 :     val TUPLEpat : Absyn.pat list -> Absyn.pat
39 :     val WHILEexp : Absyn.exp * Absyn.exp * compInfo -> Absyn.exp
40 :     val IFexp : Absyn.exp * Absyn.exp * Absyn.exp -> Absyn.exp
41 :     val unitExp : Absyn.exp
42 :     val unitPat : Absyn.pat
43 :     val bogusExp: Absyn.exp
44 :    
45 :     val bindVARp : Absyn.pat list * ErrorMsg.complainer -> StaticEnv.staticEnv
46 :     (* val isPrimPat : Absyn.pat -> bool *)
47 :     val patproc : Absyn.pat * compInfo
48 :     -> Absyn.pat * Absyn.pat list * VarCon.var list
49 :    
50 :     val checkUniq : ErrorMsg.complainer * string * Symbol.symbol list -> unit
51 :    
52 :     val clean_pat : ErrorMsg.complainer -> Absyn.pat -> Absyn.pat
53 :    
54 :     val completeMatch : (StaticEnv.staticEnv * string)
55 :     -> Absyn.rule list -> Absyn.rule list
56 :     val completeMatch' : Absyn.rule -> Absyn.rule list -> Absyn.rule list
57 :    
58 :     val makeAPPpat : ErrorMsg.complainer -> Absyn.pat * Absyn.pat -> Absyn.pat
59 :     val makeHANDLEexp : Absyn.exp * Absyn.rule list * compInfo -> Absyn.exp
60 :     val makeLAYEREDpat : Absyn.pat * Absyn.pat * ErrorMsg.complainer -> Absyn.pat
61 :     val makeRECORDexp :
62 :     (Symbol.symbol * Absyn.exp) list * ErrorMsg.complainer -> Absyn.exp
63 :     val makeRECORDpat :
64 :     (Symbol.symbol * Absyn.pat) list * bool * ErrorMsg.complainer
65 :     -> Absyn.pat
66 :    
67 :     val calc_strictness : int * Types.ty -> bool list
68 :    
69 :     val checkBoundTyvars :
70 :     TyvarSet.tyvarset * Types.tyvar list * ErrorMsg.complainer -> unit
71 :    
72 :     val checkBoundConstructor :
73 :     StaticEnv.staticEnv * Symbol.symbol * ErrorMsg.complainer -> unit
74 :    
75 :     val pat_id :
76 :     SymPath.path * StaticEnv.staticEnv * ErrorMsg.complainer * compInfo
77 :     -> Absyn.pat
78 :    
79 :     val sortRecord :
80 :     (Symbol.symbol * 'a) list * ErrorMsg.complainer
81 :     -> (Symbol.symbol * 'a) list
82 :    
83 :     val FUNdec :
84 :     (Absyn.rule list -> Absyn.rule list)
85 :     * {var : VarCon.var,
86 :     clauses: {pats: Absyn.pat list,
87 :     resultty: Types.ty option,
88 :     exp: Absyn.exp} list,
89 :     tyvars: Types.tyvar list ref} list
90 :     * Ast.region * compInfo -> (Absyn.dec * StaticEnv.staticEnv)
91 :    
92 :     val wrapRECdec : Absyn.rvb list * compInfo
93 :     -> (Absyn.dec * StaticEnv.staticEnv)
94 :    
95 :     val labsym : Absyn.numberedLabel -> Symbol.symbol
96 :    
97 :     val recDecs : Absyn.rvb list -> Absyn.dec
98 :    
99 :     val hasModules : Ast.dec -> bool
100 :    
101 :     end (* signature ELABUTIL *)
102 :    
103 :     (*
104 :     * $Log: elabutil.sig,v $
105 :     * Revision 1.2 1997/03/22 18:15:57 dbm
106 :     * Added function hasModules, which is used in ElabMod to fix bug 905/952.
107 :     *
108 :     * Revision 1.1.1.1 1997/01/14 01:38:35 george
109 :     * Version 109.24
110 :     *
111 :     *)

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0