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

SCM Repository

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

Diff of /branches/vis12/src/compiler/ast/ast-pp.sml

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

revision 2132, Fri Feb 8 22:06:12 2013 UTC revision 2133, Sun Feb 10 20:40:26 2013 UTC
# Line 173  Line 173 
173                        nl())                        nl())
174                    | AST.S_Die => (string "die;"; nl())                    | AST.S_Die => (string "die;"; nl())
175                    | AST.S_Stabilize => (string "stabilize;"; nl())                    | AST.S_Stabilize => (string "stabilize;"; nl())
176                      | AST.S_Return e => (
177                          PP.openHBox ppStrm;
178                            string "return"; sp(); ppExp(ppStrm, e); string ";";
179                          PP.closeBox ppStrm;
180                          nl())
181                    | AST.S_Print args => (                    | AST.S_Print args => (
182                        PP.openHBox ppStrm;                        PP.openHBox ppStrm;
183                          string "print"; sp(); ppArgs (ppStrm, args); string ";";                          string "print"; sp(); ppArgs (ppStrm, args); string ";";
# Line 189  Line 194 
194              PP.closeBox ppStrm              PP.closeBox ppStrm
195            end            end
196    
197        fun ppParams (ppStrm, params) = let
198              fun sp () = PP.space ppStrm 1
199              val string = PP.string ppStrm
200              in
201                ppList
202                  (fn (_, x) => (string(TU.toString(#2(Var.typeOf x))); sp(); string(Var.nameOf x)))
203                  ("(", ",", ")")
204                  (ppStrm, params)
205              end
206    
207      fun ppStrand (ppStrm, {name, params, state, methods}) = let      fun ppStrand (ppStrm, {name, params, state, methods}) = let
208            fun sp () = PP.space ppStrm 1            fun sp () = PP.space ppStrm 1
209            fun nl () = PP.newline ppStrm            fun nl () = PP.newline ppStrm
# Line 201  Line 216 
216            in            in
217              PP.openHBox ppStrm;              PP.openHBox ppStrm;
218                string "strand"; sp(); string(Atom.toString name); sp();                string "strand"; sp(); string(Atom.toString name); sp();
219                ppList (fn (_, x) => (string(TU.toString(#2(Var.typeOf x))); sp(); var x))                ppParams (ppStrm, params);
                 ("(", ",", ")") (ppStrm, params);  
220              PP.closeBox ppStrm;              PP.closeBox ppStrm;
221              nl();              nl();
222              PP.openVBox ppStrm indent;              PP.openVBox ppStrm indent;
# Line 239  Line 253 
253                  PP.closeBox ppStrm;                  PP.closeBox ppStrm;
254                  nl())                  nl())
255               | AST.D_Var vdcl => (ppVarDecl ppStrm vdcl; nl())               | AST.D_Var vdcl => (ppVarDecl ppStrm vdcl; nl())
256                 | AST.D_Fun(f, params, body) => (
257                    PP.openHBox ppStrm;
258                      string "function"; sp();
259                      string(TU.toString(TU.rngOf(Var.monoTypeOf f)));
260                      sp(); var f; sp(); ppParams (ppStrm, params);
261                    PP.closeBox ppStrm;
262                    nl();
263                    case body
264                     of AST.S_Block stms => ppBlock (ppStrm, stms)
265                      | stm => ppBlock (ppStrm, [stm])
266                    (* end case *))
267               | AST.D_Strand def => ppStrand (ppStrm, def)               | AST.D_Strand def => ppStrand (ppStrm, def)
268               | AST.D_InitialArray(create, iters) => (* FIXME *) ()               | AST.D_InitialArray(create, iters) => (* FIXME *) ()
269               | AST.D_InitialCollection(create, iters) => (* FIXME *) ()               | AST.D_InitialCollection(create, iters) => (* FIXME *) ()

Legend:
Removed from v.2132  
changed lines
  Added in v.2133

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