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

SCM Repository

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

Diff of /trunk/src/compiler/ast/ast-pp.sml

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

revision 2635, Mon May 26 14:06:39 2014 UTC revision 2636, Tue May 27 16:18:36 2014 UTC
# Line 57  Line 57 
57                        var f; ppTyArgs (ppStrm, mvs); sp(); ppArgs (ppStrm, args))                        var f; ppTyArgs (ppStrm, mvs); sp(); ppArgs (ppStrm, args))
58                    | AST.E_Cons es => (                    | AST.E_Cons es => (
59                        ppList ppExp ("[", ",", "]") (ppStrm, es))                        ppList ppExp ("[", ",", "]") (ppStrm, es))
60                      | AST.E_Seq es => (
61                          ppList ppExp ("{", ",", "}") (ppStrm, es))
62                    | AST.E_Slice(e, indices, _) => (                    | AST.E_Slice(e, indices, _) => (
63                        pp e;                        pp e;
64                        ppList ppIndex ("[", ",", "]") (ppStrm, indices))                        ppList ppIndex ("[", ",", "]") (ppStrm, indices))
65                    | AST.E_Cond(e1, e2, e3, _) => (                    | AST.E_Cond(e1, e2, e3, _) => (
66                        pp e2; sp(); string "if"; sp(); pp e1; sp(); string "else"; sp(); pp e3)                        pp e2; sp(); string "if"; sp(); pp e1; sp(); string "else"; sp(); pp e3)
67                      | AST.E_LoadNrrd(mvs, name, ty) => (
68                          case TU.pruneHead ty
69                           of Types.T_Image _ => string "loadImage"
70                            | _ => raise Fail "impossible"
71                          (* end case *);
72                          ppTyArgs (ppStrm, mvs); sp();
73                          string(concat["(\"", name, "\")"]))
74                    | AST.E_Coerce{dstTy, e, ...} => (                    | AST.E_Coerce{dstTy, e, ...} => (
75                        PP.openHBox ppStrm;                        PP.openHBox ppStrm;
76                          string "("; string(TU.toString dstTy); string ")";                          string "("; string(TU.toString dstTy); string ")";
# Line 71  Line 80 
80                          | AST.E_Lit _ => pp e                          | AST.E_Lit _ => pp e
81                          | AST.E_Tuple _ => pp e                          | AST.E_Tuple _ => pp e
82                          | AST.E_Cons _ => pp e                          | AST.E_Cons _ => pp e
83                            | AST.E_Seq _ => pp e
84                          | _ => (string "("; pp e; string ")")                          | _ => (string "("; pp e; string ")")
85                        (* end case *))                        (* end case *))
86                  (* end case *))                  (* end case *))
# Line 258  Line 268 
268               | AST.D_InitialCollection(create, iters) => (* FIXME *) ()               | AST.D_InitialCollection(create, iters) => (* FIXME *) ()
269            end            end
270    
271      fun output (outS, AST.Program decls) = let      fun output (outS, AST.Program{props, decls}) = let
272            val ppStrm = PP.openOut {dst = outS, wid = 120}            val ppStrm = PP.openOut {dst = outS, wid = 120}
273            in            in
274              PP.openVBox ppStrm (PP.Abs 0);              PP.openVBox ppStrm (PP.Abs 0);
275                PP.string ppStrm "/* Program start */"; PP.newline ppStrm;                PP.string ppStrm "/* Program start */"; PP.newline ppStrm;
276                  PP.openHBox ppStrm;
277                    PP.string ppStrm "properties:";
278                    PP.space ppStrm 1;
279                    PP.string ppStrm (StrandUtil.propsToString props);
280                    PP.newline ppStrm;
281                  PP.closeBox ppStrm;
282                List.app (ppDecl ppStrm) decls;                List.app (ppDecl ppStrm) decls;
283                PP.string ppStrm "/* Program end */"; PP.newline ppStrm;                PP.string ppStrm "/* Program end */"; PP.newline ppStrm;
284              PP.closeBox ppStrm;              PP.closeBox ppStrm;

Legend:
Removed from v.2635  
changed lines
  Added in v.2636

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