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/types/varcon.sml
ViewVC logotype

Annotation of /sml/trunk/src/compiler/Semant/types/varcon.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 16 - (view) (download)

1 : monnier 16 (* Copyright 1996 by AT&T Bell Laboratories *)
2 :     (* varcon.sml *)
3 :    
4 :     structure VarCon : VARCON =
5 :     struct
6 :    
7 :     local structure A = Access
8 :     structure BT = BasicTypes
9 :     structure II = InlInfo
10 :     structure T = Types
11 :     structure S = Symbol
12 :     structure SP = SymPath
13 :    
14 :    
15 :     in
16 :    
17 :     datatype var
18 :     = VALvar of (* ordinary variables *)
19 :     {path : SP.path,
20 :     typ : T.ty ref,
21 :     access : A.access,
22 :     info : II.inl_info}
23 :     | OVLDvar of (* overloaded identifier *)
24 :     {name : S.symbol,
25 :     options: {indicator: T.ty, variant: var} list ref,
26 :     scheme: T.tyfun}
27 :     | ERRORvar
28 :    
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 :     info = II.nullInfo}
40 :    
41 :     val bogusCON = T.DATACON{name=S.varSymbol "bogus",
42 :     typ=T.WILDCARDty,
43 :     rep=A.CONSTANT 0,
44 :     const=true,
45 :     sign=A.CSIG(0,1)}
46 :    
47 :     val bogusEXN = T.DATACON{name=S.varSymbol "bogus",
48 :     typ=BT.exnTy,
49 :     rep=A.CONSTANT 0,
50 :     const=true,
51 :     sign=A.CNIL}
52 :    
53 :     end (* local *)
54 :     end (* structure VarCon *)
55 :    
56 :     (*
57 :     * $Log: varcon.sml,v $
58 :     * Revision 1.1.1.1 1997/01/14 01:38:12 george
59 :     * Version 109.24
60 :     *
61 :     *)

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