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

SCM Repository

[smlnj] Diff of /sml/branches/primop-branch-gkuan/compiler/FLINT/trans/absyntp.sml
ViewVC logotype

Diff of /sml/branches/primop-branch-gkuan/compiler/FLINT/trans/absyntp.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2947, Sat Feb 16 00:17:56 2008 UTC revision 2948, Sat Feb 16 18:11:07 2008 UTC
# Line 12  Line 12 
12    structure SP = SymPath    structure SP = SymPath
13    structure B = Bindings    structure B = Bindings
14    structure LT = LtyExtern    structure LT = LtyExtern
15    open VarCon Modules Types    structure T = TypesTP
16      structure A = Access
17      structure V = VarCon
18      open Modules Types
19  in  in
20    
21  type region = Ast.region  (* = int * int *)  type region = Ast.region  (* = int * int *)
22    
 datatype tycpath (* (instantiated) functor type parameter path *)  
   = TP_VAR of { tdepth: DebIndex.depth, num: int, kind: LT.tkind }  
   | TP_TYC of tycon  
   | TP_FCT of tycpath list * tycpath list  
   | TP_APP of tycpath * tycpath list  
   | TP_SEL of tycpath * int  
   
23  datatype exp  datatype exp
24    = VARexp of var ref * tyvar list    = VARexp of V.var ref * tyvar list
25      (* the 2nd arg is a type mv list used to capture the instantiation      (* the 2nd arg is a type mv list used to capture the instantiation
26         parameters for this occurence of var when its type is polymorphic.         parameters for this occurence of var when its type is polymorphic.
27         FLINT will use these to provide explicit type parameters for         FLINT will use these to provide explicit type parameters for
# Line 70  Line 66 
66    | OPENdec of (SP.path * Structure) list    | OPENdec of (SP.path * Structure) list
67    | LOCALdec of dec * dec    | LOCALdec of dec * dec
68    | SEQdec of dec list    | SEQdec of dec list
69    | OVLDdec of var    | OVLDdec of V.var
70    | FIXdec of {fixity: F.fixity, ops: S.symbol list}    | FIXdec of {fixity: F.fixity, ops: S.symbol list}
71    | MARKdec of dec * region    | MARKdec of dec * region
72    
# Line 81  Line 77 
77  and strexp  and strexp
78    = VARstr of Structure    = VARstr of Structure
79    | STRstr of B.binding list    | STRstr of B.binding list
80    | APPstr of {oper: Functor, arg: Structure, argtycs: tycpath list}    | APPstr of {oper: Functor, arg: Structure, argtycs: T.tycpath list}
81    | LETstr of dec * strexp    | LETstr of dec * strexp
82    | MARKstr of strexp * region    | MARKstr of strexp * region
83    
# Line 92  Line 88 
88   *)   *)
89  and fctexp  and fctexp
90    = VARfct of Functor    = VARfct of Functor
91    | FCTfct of {param: Structure, argtycs: tycpath list, def: strexp}    | FCTfct of {param: Structure, argtycs: T.tycpath list, def: strexp}
92    | LETfct of dec * fctexp    | LETfct of dec * fctexp
93    | MARKfct of fctexp * region    | MARKfct of fctexp * region
94    
# Line 111  Line 107 
107   * list of RVBs could share type variables, that is, the boundtvs sets   * list of RVBs could share type variables, that is, the boundtvs sets
108   * used in these RVBs could contain overlapping set of type variables.   * used in these RVBs could contain overlapping set of type variables.
109   *)   *)
110  and rvb = RVB of {var: var, exp: exp, boundtvs: tyvar list,  and rvb = RVB of {var: V.var, exp: exp, boundtvs: tyvar list,
111                    resultty: ty option, tyvars: tyvar list ref}                    resultty: ty option, tyvars: tyvar list ref}
112    
113  and eb = EBgen of {exn: datacon, etype: ty option, ident: exp}  and eb = EBgen of {exn: datacon, etype: ty option, ident: exp}

Legend:
Removed from v.2947  
changed lines
  Added in v.2948

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