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

SCM Repository

[diderot] Annotation of /branches/vis12/src/compiler/translate/translate-ty.sml
ViewVC logotype

Annotation of /branches/vis12/src/compiler/translate/translate-ty.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1687 - (view) (download)

1 : jhr 1640 (* translate-ty.sml
2 :     *
3 :     * COPYRIGHT (c) 2011 The Diderot Project (http://diderot-language.cs.uchicago.edu)
4 :     * All rights reserved.
5 :     *)
6 :    
7 :     structure TranslateTy : sig
8 :    
9 :     val tr : Types.ty -> HighILTypes.ty
10 :    
11 :     end = struct
12 :    
13 :     structure Ty = Types
14 :     structure DstTy = HighILTypes
15 :    
16 :     fun tr ty = (case TypeUtil.prune ty
17 :     of Ty.T_Bool => DstTy.BoolTy
18 :     | Ty.T_Int => DstTy.IntTy
19 :     | Ty.T_String => DstTy.StringTy
20 :     | Ty.T_Sequence(ty, Ty.DimConst d) => DstTy.SeqTy(tr ty, d)
21 : jhr 1687 | Ty.T_DynSequence ty => DstTy.DynSeqTy(tr ty)
22 : jhr 1640 | Ty.T_Kernel _ => DstTy.KernelTy
23 :     | Ty.T_Tensor(Ty.Shape dd) => let
24 :     fun cvtDim (Ty.DimConst 1) = NONE
25 :     | cvtDim (Ty.DimConst d) = SOME d
26 :     in
27 :     DstTy.TensorTy(List.mapPartial cvtDim dd)
28 :     end
29 :     | Ty.T_Image{dim=Ty.DimConst d, shape} => DstTy.ImageTy d
30 :     | Ty.T_Field fld => DstTy.FieldTy
31 :     | ty => raise Fail("TranslateTy.tr: unexpected " ^ TypeUtil.toString ty)
32 :     (* end case *))
33 :    
34 :     end

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