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

SCM Repository

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

Diff of /branches/vis12/src/compiler/simplify/simple-pp.sml

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

revision 2134, Mon Feb 11 12:32:58 2013 UTC revision 2135, Mon Feb 11 12:33:24 2013 UTC
# Line 151  Line 151 
151                        PP.closeBox ppStrm)                        PP.closeBox ppStrm)
152                    | S.S_Die => string "die;"                    | S.S_Die => string "die;"
153                    | S.S_Stabilize => string "stabilize;"                    | S.S_Stabilize => string "stabilize;"
154                      | S.S_Return x => (
155                          PP.openHBox ppStrm;
156                            string "return"; sp(); ppVar(ppStrm, x); string ";";
157                          PP.closeBox ppStrm)
158                    | S.S_Print args => (                    | S.S_Print args => (
159                        PP.openHBox ppStrm;                        PP.openHBox ppStrm;
160                          string "print"; sp(); ppArgs (ppStrm, args); string ";";                          string "print"; sp(); ppArgs (ppStrm, args); string ";";
161                        PP.closeBox ppStrm;                        PP.closeBox ppStrm)
                       nl())  
162                  (* end case *))                  (* end case *))
163            in            in
164              PP.openVBox ppStrm (PP.Abs 0);              PP.openVBox ppStrm (PP.Abs 0);
# Line 168  Line 171 
171              PP.closeBox ppStrm              PP.closeBox ppStrm
172            end            end
173    
174        fun ppParams (ppStrm, params) = let
175              fun sp () = PP.space ppStrm 1
176              val string = PP.string ppStrm
177              in
178                ppList
179                  (fn (_, x) => (string(TU.toString(#2(Var.typeOf x))); sp(); ppVar (ppStrm, x)))
180                  ("(", ",", ")")
181                  (ppStrm, params)
182              end
183    
184        fun ppFunc ppStrm (S.Func{f, params, body}) = let
185              fun sp () = PP.space ppStrm 1
186              fun nl () = PP.newline ppStrm
187              val string = PP.string ppStrm
188              fun var x = ppVar (ppStrm, x)
189              in
190                PP.openHBox ppStrm;
191                  string "function"; sp();
192                  string(TU.toString(TU.rngOf(Var.monoTypeOf f)));
193                  sp(); var f; sp(); ppParams (ppStrm, params);
194                PP.closeBox ppStrm;
195                nl();
196                ppBlock (ppStrm, [], body);
197                nl()
198              end
199    
200      fun ppInit (ppStrm, S.Initially{isArray, rangeInit, iters, create}) = let      fun ppInit (ppStrm, S.Initially{isArray, rangeInit, iters, create}) = let
201            fun sp () = PP.space ppStrm 1            fun sp () = PP.space ppStrm 1
202            fun nl () = PP.newline ppStrm            fun nl () = PP.newline ppStrm
# Line 252  Line 281 
281              pp              pp
282            end            end
283    
284      fun output (outS, S.Program{inputs, globals, globalInit, strands, init}) = let      fun output (outS, S.Program{inputs, globals, globalInit, funcs, strands, init}) = let
285            val ppStrm = PP.openOut {dst = outS, wid = 120}            val ppStrm = PP.openOut {dst = outS, wid = 120}
286            fun nl () = PP.newline ppStrm            fun nl () = PP.newline ppStrm
287            in            in
288              PP.openVBox ppStrm (PP.Abs 0);              PP.openVBox ppStrm (PP.Abs 0);
289                PP.string ppStrm "/* Simplified Program start */"; nl();                PP.string ppStrm "/* Simplified Program start */"; nl();
290                List.app (ppInput ppStrm) inputs;                List.app (ppInput ppStrm) inputs;
291                  List.app (ppFunc ppStrm) funcs;
292                ppBlock (ppStrm, globals, globalInit);                ppBlock (ppStrm, globals, globalInit);
293                nl();                nl();
294                ppInit (ppStrm, init);                ppInit (ppStrm, init);

Legend:
Removed from v.2134  
changed lines
  Added in v.2135

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