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

SCM Repository

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

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

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

revision 612, Sat Mar 12 17:56:24 2011 UTC revision 613, Sat Mar 12 19:29:23 2011 UTC
# Line 95  Line 95 
95    
96      and ppArgs (ppStrm, args) = ppList ppVar ("(", ",", ")") (ppStrm, args)      and ppArgs (ppStrm, args) = ppList ppVar ("(", ",", ")") (ppStrm, args)
97    
98      fun ppBlock (ppStrm, vars, S.Block stms) = let      fun ppBlock (ppStrm, [], S.Block[]) = PP.string ppStrm "{ }"
99          | ppBlock (ppStrm, vars, S.Block stms) = let
100            fun sp () = PP.space ppStrm 1            fun sp () = PP.space ppStrm 1
101            fun nl () = PP.newline ppStrm            fun nl () = PP.newline ppStrm
102            val string = PP.string ppStrm            val string = PP.string ppStrm
# Line 160  Line 161 
161              PP.closeBox ppStrm              PP.closeBox ppStrm
162            end            end
163    
164        fun ppInit (ppStrm, init) = let
165              fun sp () = PP.space ppStrm 1
166              fun nl () = PP.newline ppStrm
167              val string = PP.string ppStrm
168              fun var x = string(Var.uniqueNameOf x)
169              val (label, creat, iters) = (case init
170                     of S.InitialArray(creat, iters) => ("Array", creat, iters)
171                      | S.InitialCollection(creat, iters) => ("Collection", creat, iters)
172                    (* end case *))
173              fun ppIters [] = let
174                    val S.C_Create{argInit, name, args} = creat
175                    in
176                      ppBlock (ppStrm, [], argInit); nl();
177                      PP.openHBox ppStrm;
178                        string "new"; sp(); string(Atom.toString name);
179                        ppArgs (ppStrm, args); string ";";
180                      PP.closeBox ppStrm
181                    end
182                | ppIters (S.I_Range{rangeInit, param, lo, hi} :: iters) = (
183                    ppBlock (ppStrm, [], rangeInit); nl();
184                    PP.openVBox ppStrm indent;
185                      PP.openHBox ppStrm;
186                        string "for"; sp();
187                        string(TU.toString(#2(Var.typeOf param))); sp(); var param;
188                        sp(); string "="; sp(); var lo; sp(); string ".."; sp(); var hi;
189                      PP.closeBox ppStrm;
190                      nl();
191                      ppIters iters;
192                    PP.closeBox ppStrm)
193              in
194                PP.openVBox ppStrm indent;
195                  string label; nl(); ppIters iters;
196                PP.closeBox ppStrm;
197                nl()
198              end
199    
200      fun ppStrand ppStrm (S.Strand{name, params, state, stateInit, methods}) = let      fun ppStrand ppStrm (S.Strand{name, params, state, stateInit, methods}) = 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 191  Line 228 
228                PP.string ppStrm "/* Simplified Program start */"; nl();                PP.string ppStrm "/* Simplified Program start */"; nl();
229                ppBlock (ppStrm, globals, globalInit);                ppBlock (ppStrm, globals, globalInit);
230                nl();                nl();
231  (* FIXME: print init *)                ppInit (ppStrm, init);
232                List.app (ppStrand ppStrm) strands;                List.app (ppStrand ppStrm) strands;
233                PP.string ppStrm "/* Program end */"; PP.newline ppStrm;                PP.string ppStrm "/* Program end */"; PP.newline ppStrm;
234              PP.closeBox ppStrm;              PP.closeBox ppStrm;

Legend:
Removed from v.612  
changed lines
  Added in v.613

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