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 226, Tue Aug 3 21:34:18 2010 UTC revision 227, Wed Aug 4 05:27:13 2010 UTC
# Line 95  Line 95 
95            fun nl () = PP.newline ppStrm            fun nl () = PP.newline ppStrm
96            val string = PP.string ppStrm            val string = PP.string ppStrm
97            fun var x = string(Var.uniqueNameOf x)            fun var x = string(Var.uniqueNameOf x)
98            fun ppStmt stmt = (case stmt            fun ppStmt stmt = (
99                    nl();
100                    case stmt
101                   of S.S_Assign(x, e) => (                   of S.S_Assign(x, e) => (
102                        PP.openHBox ppStrm;                        PP.openHBox ppStrm;
103                          var x; sp(); string "="; sp(); ppExp(ppStrm, e); string ";";                          var x; sp(); string "="; sp(); ppExp(ppStrm, e); string ";";
104                        PP.closeBox ppStrm;                        PP.closeBox ppStrm)
                       nl())  
105                    | S.S_IfThenElse(x, S.Block[s1], S.Block[]) => (                    | S.S_IfThenElse(x, S.Block[s1], S.Block[]) => (
106                        PP.openVBox ppStrm indent;                        PP.openVBox ppStrm indent;
107                          PP.openHBox ppStrm;                          PP.openHBox ppStrm;
# Line 108  Line 109 
109                          PP.closeBox ppStrm;                          PP.closeBox ppStrm;
110                          nl();                          nl();
111                          ppStmt s1;                          ppStmt s1;
112                        PP.closeBox ppStrm;                        PP.closeBox ppStrm)
                       nl())  
113                    | S.S_IfThenElse(x, blk, S.Block[]) => (                    | S.S_IfThenElse(x, blk, S.Block[]) => (
114                        PP.openHBox ppStrm;                        PP.openHBox ppStrm;
115                          string "if"; sp(); ppVar(ppStrm, x);                          string "if"; sp(); ppVar(ppStrm, x);
# Line 127  Line 127 
127                        PP.openVBox ppStrm indent;                        PP.openVBox ppStrm indent;
128                          string "else"; nl();                          string "else"; nl();
129                          ppStmt s2;                          ppStmt s2;
130                        PP.closeBox ppStrm;                        PP.closeBox ppStrm)
                       nl())  
131                    | S.S_IfThenElse(x, blk1, blk2) => (                    | S.S_IfThenElse(x, blk1, blk2) => (
132                        PP.openHBox ppStrm;                        PP.openHBox ppStrm;
133                          string "if"; sp(); ppVar(ppStrm, x);                          string "if"; sp(); ppVar(ppStrm, x);
# Line 141  Line 140 
140                        PP.openHBox ppStrm;                        PP.openHBox ppStrm;
141                          string "new"; sp(); string(Atom.toString actor); sp();                          string "new"; sp(); string(Atom.toString actor); sp();
142                          ppArgs (ppStrm, args); string ";";                          ppArgs (ppStrm, args); string ";";
143                        PP.closeBox ppStrm;                        PP.closeBox ppStrm)
144                        nl())                    | S.S_Die => string "die;"
145                    | S.S_Die => (string "die;"; nl())                    | S.S_Stabilize => string "stabilize;"
                   | S.S_Stabilize => (string "stabilize;"; nl())  
146                  (* end case *))                  (* end case *))
147            in            in
148              PP.openVBox ppStrm (PP.Abs 0);              PP.openVBox ppStrm (PP.Abs 0);
149                string "{"; nl();                string "{";
150                PP.openVBox ppStrm indent;                PP.openVBox ppStrm indent;
151                  List.app (fn vdcl => (ppVarDecl ppStrm vdcl; nl())) vars;                  List.app (fn vdcl => (nl(); ppVarDecl ppStrm vdcl)) vars;
152                  List.app ppStmt stms;                  List.app ppStmt stms;
153                PP.closeBox ppStrm;                PP.closeBox ppStrm;
154                string "}"; nl();                nl(); string "}";
155              PP.closeBox ppStrm              PP.closeBox ppStrm
156            end            end
157    
# Line 180  Line 178 
178              string "}";  nl()              string "}";  nl()
179            end            end
180    
181      fun output (outS, S.Program{globals, globalInit, actors}) = let      fun output (outS, S.Program{globals, staticInit, globalInit, actors}) = let
182            val ppStrm = PP.openOut {dst = outS, wid = 120}            val ppStrm = PP.openOut {dst = outS, wid = 120}
183              fun nl () = PP.newline ppStrm
184            in            in
185              PP.openVBox ppStrm (PP.Abs 0);              PP.openVBox ppStrm (PP.Abs 0);
186                PP.string ppStrm "/* Simplified Program start */"; PP.newline ppStrm;                PP.string ppStrm "/* Simplified Program start */"; nl();
187                ppBlock (ppStrm, globals, globalInit);                case staticInit
188                   of S.Block[] => ppBlock (ppStrm, globals, globalInit)
189                    | _ => (
190                        ppBlock (ppStrm, globals, staticInit); nl();
191                        ppBlock (ppStrm, [], globalInit))
192                  (* end case *);
193                  nl();
194                List.app (ppActor ppStrm) actors;                List.app (ppActor ppStrm) actors;
195                PP.string ppStrm "/* Program end */"; PP.newline ppStrm;                PP.string ppStrm "/* Program end */"; PP.newline ppStrm;
196              PP.closeBox ppStrm;              PP.closeBox ppStrm;

Legend:
Removed from v.226  
changed lines
  Added in v.227

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