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/compiler/ElabData/syntax/varcon.sml
ViewVC logotype

Annotation of /sml/trunk/compiler/ElabData/syntax/varcon.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4432 - (view) (download)

1 : blume 902 (* varcon.sml
2 :     *
3 : jhr 4431 * COPYRIGHT (c) 2017 The Fellowship of SML/NJ (http://www.smlnj.org)
4 :     * All rights reserved.
5 : blume 902 *)
6 : jhr 4431
7 : blume 902 structure VarCon : VARCON =
8 :     struct
9 :    
10 :     local structure A = Access
11 :     structure T = Types
12 :     structure S = Symbol
13 :     structure SP = SymPath
14 :     in
15 :    
16 :     datatype var
17 :     = VALvar of (* ordinary variables *)
18 :     {path : SP.path,
19 :     typ : T.ty ref,
20 : dbm 3117 btvs : T.tyvar list ref,
21 : blume 902 access : A.access,
22 : jhr 4431 prim : PrimopId.prim_id}
23 : blume 902 | OVLDvar of (* overloaded identifier *)
24 :     {name : S.symbol,
25 : dbm 4000 options: {indicator: T.ty, variant: var} list,
26 : blume 902 scheme: T.tyfun}
27 : dbm 4000 | ERRORvar (* error variables *)
28 : blume 902
29 :     type datacon = T.datacon
30 :    
31 :     datatype value
32 :     = VAL of var
33 :     | CON of datacon
34 :    
35 :     fun mkVALvar (id, acc) =
36 :     VALvar{path = SP.SPATH [id],
37 :     typ = ref T.UNDEFty,
38 :     access = acc,
39 : dbm 3117 btvs = ref [],
40 : jhr 4431 prim = PrimopId.NonPrim}
41 : blume 902
42 :     val bogusCON = T.DATACON{name=S.varSymbol "bogus",
43 :     typ=T.WILDCARDty,
44 :     rep=A.CONSTANT 0,
45 :     const=true,
46 :     lazyp=false,
47 :     sign=A.CSIG(0,1)}
48 :    
49 : blume 903 val bogusEXN = T.DATACON{name=S.varSymbol "bogus",
50 : jhr 4432 typ=BasicTypes.exnTy,
51 : blume 903 rep=A.CONSTANT 0,
52 :     const=true,
53 :     lazyp=false,
54 :     sign=A.CNIL}
55 : blume 902
56 :     end (* local *)
57 :     end (* structure VarCon *)

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