Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /trunk/src/compiler/translate/translate-ty.sml
ViewVC logotype

Diff of /trunk/src/compiler/translate/translate-ty.sml

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

revision 2475, Sat Oct 12 17:45:57 2013 UTC revision 2476, Mon Oct 14 09:36:13 2013 UTC
# Line 6  Line 6 
6    
7  structure TranslateTy : sig  structure TranslateTy : sig
8    
9      val tr : Types.ty -> HighILTypes.ty      val tr : SimpleTypes.ty -> HighILTypes.ty
10    
11    end = struct    end = struct
12    
13      structure Ty = Types      structure Ty = SimpleTypes
14      structure DstTy = HighILTypes      structure DstTy = HighILTypes
15    
16      fun tr ty = (case TypeUtil.prune ty      fun tr ty = (case ty
17             of Ty.T_Bool => DstTy.BoolTy             of Ty.T_Bool => DstTy.BoolTy
18              | Ty.T_Int => DstTy.IntTy              | Ty.T_Int => DstTy.IntTy
19              | Ty.T_String => DstTy.StringTy              | Ty.T_String => DstTy.StringTy
20              | Ty.T_Sequence(ty, Ty.DimConst d) => DstTy.SeqTy(tr ty, d)              | Ty.T_Sequence(ty, d) => DstTy.SeqTy(tr ty, d)
21              | Ty.T_Kernel _ => DstTy.KernelTy              | Ty.T_Kernel _ => DstTy.KernelTy
22              | Ty.T_Tensor(Ty.Shape dd) => let              | Ty.T_Tensor dd => let
23                  fun cvtDim (Ty.DimConst 1) = NONE                  fun cvtDim 1 = NONE
24                    | cvtDim (Ty.DimConst d) = SOME d                    | cvtDim d = SOME d
25                  in                  in
26                    DstTy.TensorTy(List.mapPartial cvtDim dd)                    DstTy.TensorTy(List.mapPartial cvtDim dd)
27                  end                  end
28              | Ty.T_Image{dim=Ty.DimConst d, shape} => DstTy.ImageTy d              | Ty.T_Image{dim, shape} => DstTy.ImageTy dim
29              | Ty.T_Field fld => DstTy.FieldTy              | Ty.T_Field fld => DstTy.FieldTy
30              | ty => raise Fail("TranslateTy.tr: unexpected " ^ TypeUtil.toString ty)              | ty => raise Fail("TranslateTy.tr: unexpected " ^ Ty.toString ty)
31            (* end case *))            (* end case *))
32    
33    end    end

Legend:
Removed from v.2475  
changed lines
  Added in v.2476

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