Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | (* Copyright (C) 2009 Matthew Fluet. |
2 | * Copyright (C) 1999-2006 Henry Cejtin, Matthew Fluet, Suresh | |
3 | * Jagannathan, and Stephen Weeks. | |
4 | * Copyright (C) 1997-2000 NEC Research Institute. | |
5 | * | |
6 | * MLton is released under a BSD-style license. | |
7 | * See the file MLton-LICENSE for details. | |
8 | *) | |
9 | ||
10 | signature ANALYZE_STRUCTS = | |
11 | sig | |
12 | include DIRECT_EXP | |
13 | end | |
14 | ||
15 | signature ANALYZE = | |
16 | sig | |
17 | include ANALYZE_STRUCTS | |
18 | ||
19 | val analyze: | |
20 | {coerce: {from: 'a, | |
21 | to: 'a} -> unit, | |
22 | conApp: {args: 'a vector, | |
23 | con: Con.t} -> 'a, | |
24 | const: Const.t -> 'a, | |
25 | filter: 'a * Con.t * 'a vector -> unit, | |
26 | filterWord: 'a * WordSize.t -> unit, | |
27 | fromType: Type.t -> 'a, | |
28 | layout: 'a -> Layout.t, | |
29 | primApp: {args: 'a vector, | |
30 | prim: Type.t Prim.t, | |
31 | resultType: Type.t, | |
32 | resultVar: Var.t option, | |
33 | targs: Type.t vector} -> 'a, | |
34 | program: Program.t, | |
35 | select: {offset: int, | |
36 | resultType: Type.t, | |
37 | tuple: 'a} -> 'a, | |
38 | tuple: 'a vector -> 'a, | |
39 | useFromTypeOnBinds: bool | |
40 | } | |
41 | -> { | |
42 | value: Var.t -> 'a, | |
43 | func: Func.t -> {args: 'a vector, | |
44 | raises: 'a vector option, | |
45 | returns: 'a vector option}, | |
46 | label: Label.t -> 'a vector | |
47 | } | |
48 | end |