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 106 - (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 : monnier 106 val getCoreExn : (StaticEnv.staticEnv * string) -> VarCon.datacon
55 : monnier 16 val completeMatch : (StaticEnv.staticEnv * string)
56 :     -> Absyn.rule list -> Absyn.rule list
57 :     val completeMatch' : Absyn.rule -> Absyn.rule list -> Absyn.rule list
58 :    
59 :     val makeAPPpat : ErrorMsg.complainer -> Absyn.pat * Absyn.pat -> Absyn.pat
60 :     val makeHANDLEexp : Absyn.exp * Absyn.rule list * compInfo -> Absyn.exp
61 :     val makeLAYEREDpat : Absyn.pat * Absyn.pat * ErrorMsg.complainer -> Absyn.pat
62 :     val makeRECORDexp :
63 :     (Symbol.symbol * Absyn.exp) list * ErrorMsg.complainer -> Absyn.exp
64 :     val makeRECORDpat :
65 :     (Symbol.symbol * Absyn.pat) list * bool * ErrorMsg.complainer
66 :     -> Absyn.pat
67 :    
68 :     val calc_strictness : int * Types.ty -> bool list
69 :    
70 :     val checkBoundTyvars :
71 :     TyvarSet.tyvarset * Types.tyvar list * ErrorMsg.complainer -> unit
72 :    
73 :     val checkBoundConstructor :
74 :     StaticEnv.staticEnv * Symbol.symbol * ErrorMsg.complainer -> unit
75 :    
76 :     val pat_id :
77 :     SymPath.path * StaticEnv.staticEnv * ErrorMsg.complainer * compInfo
78 :     -> Absyn.pat
79 :    
80 :     val sortRecord :
81 :     (Symbol.symbol * 'a) list * ErrorMsg.complainer
82 :     -> (Symbol.symbol * 'a) list
83 :    
84 :     val FUNdec :
85 :     (Absyn.rule list -> Absyn.rule list)
86 :     * {var : VarCon.var,
87 :     clauses: {pats: Absyn.pat list,
88 :     resultty: Types.ty option,
89 :     exp: Absyn.exp} list,
90 :     tyvars: Types.tyvar list ref} list
91 :     * Ast.region * compInfo -> (Absyn.dec * StaticEnv.staticEnv)
92 :    
93 :     val wrapRECdec : Absyn.rvb list * compInfo
94 :     -> (Absyn.dec * StaticEnv.staticEnv)
95 :    
96 :     val labsym : Absyn.numberedLabel -> Symbol.symbol
97 :    
98 :     val recDecs : Absyn.rvb list -> Absyn.dec
99 :    
100 :     val hasModules : Ast.dec -> bool
101 :    
102 :     end (* signature ELABUTIL *)
103 :    
104 :     (*
105 :     * $Log: elabutil.sig,v $
106 : monnier 106 * Revision 1.2 1998/05/15 03:35:44 dbm
107 :     * Added getCoreExn spec.
108 :     *
109 : monnier 93 * Revision 1.1.1.1 1998/04/08 18:39:25 george
110 :     * Version 110.5
111 : monnier 16 *
112 :     *)

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