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

SCM Repository

[diderot] Diff of /trunk/src/compiler/simplify/simple-pp.sml
ViewVC logotype

Diff of /trunk/src/compiler/simplify/simple-pp.sml

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

revision 2488, Mon Oct 21 19:20:12 2013 UTC revision 2489, Mon Oct 21 19:43:32 2013 UTC
# Line 13  Line 13 
13    end = struct    end = struct
14    
15      structure PP = TextIOPP      structure PP = TextIOPP
16      structure Ty = SimpleTypes      structure TU = TypeUtil
17      structure S = Simple      structure S = Simple
18    
19      val indent = PP.Abs 2      val indent = PP.Abs 2
# Line 34  Line 34 
34      fun ppTyArgs (ppStrm, mvs) = let      fun ppTyArgs (ppStrm, mvs) = let
35            val string = PP.string ppStrm            val string = PP.string ppStrm
36            fun ppTyArg (_, mv) = (case mv            fun ppTyArg (_, mv) = (case mv
37                   of Ty.TY ty => string(Ty.toString ty)                   of Types.TYPE tv => string(TU.toString(TU.resolve tv))
38                    | Ty.DIFF k => string("#"^Int.toString k)                    | Types.DIFF dv => string("#"^TU.diffToString(TU.resolveDiff dv))
39                    | Ty.SHAPE shp => string(concat[                    | Types.SHAPE sv => string("$"^TU.shapeToString(TU.resolveShape sv))
40                          "$[", String.concatWith "," (List.map Int.toString shp), "]"                    | Types.DIM dv => string("%"^TU.dimToString(TU.resolveDim dv))
                       ])  
                   | Ty.DIM d => string("%"^Int.toString d)  
41                  (* end case *))                  (* end case *))
42            in            in
43              ppList ppTyArg ("<", ";", ">") (ppStrm, mvs)              ppList ppTyArg ("<", ";", ">") (ppStrm, mvs)
44            end            end
45    
46      fun ppVar (ppStrm, x) = PP.string ppStrm (SimpleVar.uniqueNameOf x)      fun ppVar (ppStrm, x) = PP.string ppStrm (Var.uniqueNameOf x)
47    
48      fun ppVarDecl ppStrm = let      fun ppVarDecl ppStrm = let
49            fun sp () = PP.space ppStrm 1            fun sp () = PP.space ppStrm 1
# Line 53  Line 51 
51            in            in
52              fn x => (              fn x => (
53                PP.openHBox ppStrm;                PP.openHBox ppStrm;
54                  case SimpleVar.kindOf x                  case Var.kindOf x
55                   of S.InputVar => (string "input"; sp())                   of S.InputVar => (string "input"; sp())
56                    | S.StrandOutputVar => (string "output"; sp())                    | S.StrandOutputVar => (string "output"; sp())
57                    | _ => ()                    | _ => ()
58                  (* end case *);                  (* end case *);
59                  string(Ty.toString(SimpleVar.typeOf x)); sp(); string(SimpleVar.uniqueNameOf x); string ";";                  string(TU.toString(#2(Var.typeOf x))); sp(); string(Var.uniqueNameOf x); string ";";
60                PP.closeBox ppStrm)                PP.closeBox ppStrm)
61            end            end
62    
# Line 72  Line 70 
70                   of S.E_Var x => var x                   of S.E_Var x => var x
71                    | S.E_Lit lit => string (Literal.toString lit)                    | S.E_Lit lit => string (Literal.toString lit)
72                    | S.E_Tuple es => ppArgs (ppStrm, es)                    | S.E_Tuple es => ppArgs (ppStrm, es)
73                    | S.E_Apply(f, args, _) => (var f; sp(); ppArgs (ppStrm, args))                    | S.E_Apply(f, [], args, _) => (var f; sp(); ppArgs (ppStrm, args))
74                    | S.E_Prim(f, [], args, _) => (string(Var.nameOf f); sp(); ppArgs (ppStrm, args))                    | S.E_Apply(f, mvs, args, _) => (
75                    | S.E_Prim(f, mvs, args, _) => (                        var f; ppTyArgs (ppStrm, mvs); sp(); ppArgs (ppStrm, args))
                       string(Var.nameOf f); ppTyArgs (ppStrm, mvs); sp(); ppArgs (ppStrm, args))  
76                    | S.E_Cons es => (                    | S.E_Cons es => (
77                        ppList ppVar ("[", ",", "]") (ppStrm, es))                        ppList ppVar ("[", ",", "]") (ppStrm, es))
78                    | S.E_Slice(x, indices, _) => (                    | S.E_Slice(x, indices, _) => (
79                        var x;                        var x;
80                        ppList ppIndex ("[", ",", "]") (ppStrm, indices))                        ppList ppIndex ("[", ",", "]") (ppStrm, indices))
81                    | S.E_Coerce{srcTy, dstTy, x} => (                    | S.E_Coerce{srcTy, dstTy, x} => (
82                        string "("; string(Ty.toString dstTy); string ")"; var x)                        string "("; string(TU.toString dstTy); string ")"; var x)
83                    | S.E_Input(ty, argName, desc, NONE) => (                    | S.E_Input(ty, argName, desc, NONE) => (
84                        string(concat["input(\"", argName, "\","]); sp();                        string(concat["input(\"", argName, "\","]); sp();
85                        string(concat["\"", String.toString desc, "\")"]))                        string(concat["\"", String.toString desc, "\")"]))
# Line 113  Line 110 
110                  case stmt                  case stmt
111                   of S.S_Var x => (                   of S.S_Var x => (
112                        PP.openHBox ppStrm;                        PP.openHBox ppStrm;
113                          string(Ty.toString(SimpleVar.typeOf x)); sp(); var x; string ";";                          string(TU.toString(#2(Var.typeOf x))); sp(); var x; string ";";
114                        PP.closeBox ppStrm)                        PP.closeBox ppStrm)
115                    | S.S_Assign(x, e) => (                    | S.S_Assign(x, e) => (
116                        PP.openHBox ppStrm;                        PP.openHBox ppStrm;
# Line 183  Line 180 
180            val string = PP.string ppStrm            val string = PP.string ppStrm
181            in            in
182              ppList              ppList
183                (fn (_, x) => (string(Ty.toString(SimpleVar.typeOf x)); sp(); ppVar (ppStrm, x)))                (fn (_, x) => (string(TU.toString(#2(Var.typeOf x))); sp(); ppVar (ppStrm, x)))
184                ("(", ",", ")")                ("(", ",", ")")
185                (ppStrm, params)                (ppStrm, params)
186            end            end
# Line 196  Line 193 
193            in            in
194              PP.openHBox ppStrm;              PP.openHBox ppStrm;
195                string "function"; sp();                string "function"; sp();
196                string(Ty.toString(Ty.rngOf(SimpleVar.typeOf f)));                string(TU.toString(TU.rngOf(Var.monoTypeOf f)));
197                sp(); var f; sp(); ppParams (ppStrm, params);                sp(); var f; sp(); ppParams (ppStrm, params);
198              PP.closeBox ppStrm;              PP.closeBox ppStrm;
199              nl();              nl();
# Line 223  Line 220 
220                  PP.openVBox ppStrm indent;                  PP.openVBox ppStrm indent;
221                    PP.openHBox ppStrm;                    PP.openHBox ppStrm;
222                      string "for"; sp();                      string "for"; sp();
223                      string(Ty.toString(SimpleVar.typeOf param)); sp(); var param;                      string(TU.toString(#2(Var.typeOf param))); sp(); var param;
224                      sp(); string "="; sp(); var lo; sp(); string ".."; sp(); var hi;                      sp(); string "="; sp(); var lo; sp(); string ".."; sp(); var hi;
225                    PP.closeBox ppStrm;                    PP.closeBox ppStrm;
226                    nl();                    nl();

Legend:
Removed from v.2488  
changed lines
  Added in v.2489

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