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

SCM Repository

[diderot] Diff of /branches/vis15/src/compiler/cxx-util/print-as-cxx.sml
ViewVC logotype

Diff of /branches/vis15/src/compiler/cxx-util/print-as-cxx.sml

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

revision 3995, Sat Jun 18 20:00:19 2016 UTC revision 3996, Sun Jun 19 15:21:12 2016 UTC
# Line 252  Line 252 
252                        inHBox (fn () => (                        inHBox (fn () => (
253                          str "using"; sp(); str name; sp(); str"="; sp(); ppTy(ty, NONE); str ";"));                          str "using"; sp(); str name; sp(); str"="; sp(); ppTy(ty, NONE); str ";"));
254                        PP.newline strm)                        PP.newline strm)
255                      | CL.D_Namespace(name, dcls) => (
256                          if inClass then raise Fail "unexpected namespace inside class decl" else ();
257                          PP.openVBox strm indent0;
258                            inHBox (fn () => (str "namespace"; sp(); str name; sp(); str "{"));
259                            PP.openVBox strm indent;
260                              List.app (fn dcl => (PP.newline strm; ppDecl(false, dcl))) dcls;
261                            PP.closeBox strm;
262                            PP.newline strm;
263                            inHBox (fn () => (str "}"; sp(); str("// namespace " ^ name)));
264                            PP.closeBox strm;
265                          PP.newline strm)
266                  (* end case *))                  (* end case *))
267            and ppBody (CL.S_Block stms) = ppBlock stms            and ppBody (CL.S_Block stms) = ppBlock stms
268              | ppBody stm = ppBlock [stm]              | ppBody stm = ppBlock [stm]
# Line 335  Line 346 
346                    | CL.S_DoWhile(blk, e) =>                    | CL.S_DoWhile(blk, e) =>
347                        inHBox (fn () => (                        inHBox (fn () => (
348                          str "do"; ppStmAsBlock blk; sp(); str "while"; sp(); ppExp e))                          str "do"; ppStmAsBlock blk; sp(); str "while"; sp(); ppExp e))
349                    | CL.S_For(inits, cond, incrs, blk) => let                    | CL.S_For(ty, dcls, cond, incrs, blk) => inHBox (fn () => (
                       fun ppInit (ty, x, e) = inHBox (fn () => (  
                             ppTy(ty, SOME x);  
                             sp(); str "="; sp();  
                             ppExp e))  
                       in  
                         inHBox (fn () => (  
350                            str "for"; sp(); str "(";                            str "for"; sp(); str "(";
351                            ppCommaList {pp = ppInit, l = inits};                        case dcls
352                           of (x, e)::rest => (
353                                ppTy(ty, SOME x); sp(); str "="; sp(); ppExp e;
354                                List.app
355                                  (fn (x, e) => (str ","; sp(); str x; sp(); str "="; sp(); ppExp e))
356                                    rest)
357                            | [] => ()
358                          (* end case *);
359                            str ";"; sp();                            str ";"; sp();
360                            ppExp cond; str ";"; sp();                            ppExp cond; str ";"; sp();
361                            ppCommaList {pp = ppExp, l = incrs};                        ppList {pp = ppExp, sep = fn () => str ",", l = incrs};
362                            str ")";                            str ")";
363                            ppStmAsBlock blk))                            ppStmAsBlock blk))
                       end  
364                    | CL.S_Return(SOME e) => inHBox (fn () => (str "return"; sp(); ppExp e; str ";"))                    | CL.S_Return(SOME e) => inHBox (fn () => (str "return"; sp(); ppExp e; str ";"))
365                    | CL.S_Return _ => str "return;"                    | CL.S_Return _ => str "return;"
366                    | CL.S_Break => str "break;"                    | CL.S_Break => str "break;"

Legend:
Removed from v.3995  
changed lines
  Added in v.3996

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