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

SCM Repository

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

Diff of /branches/vis12/src/compiler/c-util/print-as-c.sml

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

revision 1717, Sat Mar 10 19:44:29 2012 UTC revision 1718, Sat Mar 10 23:03:02 2012 UTC
# Line 23  Line 23 
23    
24      type strm = PP.stream      type strm = PP.stream
25    
26        val indent0 = (PP.Abs 0)
27      val indent = (PP.Abs 4)     (* standard indentation amount *)      val indent = (PP.Abs 4)     (* standard indentation amount *)
28    
29      fun new outs = PP.openOut {dst = outs, wid = 90}      fun new outs = PP.openOut {dst = outs, wid = 90}
# Line 110  Line 111 
111                          str ");"));                          str ");"));
112                        PP.newline strm)                        PP.newline strm)
113                    | CL.D_Func(attrs, ty, f, params, body) => (                    | CL.D_Func(attrs, ty, f, params, body) => (
114                          PP.openVBox strm indent0;
115                        inHBox (fn () => (                        inHBox (fn () => (
116                          ppAttrs attrs;                          ppAttrs attrs;
117                          ppTy(ty, SOME f);                          ppTy(ty, SOME f);
# Line 117  Line 119 
119                          ppList {pp=ppParam, sep=fn () => (str ","; sp()), l=params};                          ppList {pp=ppParam, sep=fn () => (str ","; sp()), l=params};
120                          str ")"));                          str ")"));
121                        PP.newline strm;                        PP.newline strm;
122                        ppBlock (case body of CL.S_Block stms => stms | stm => [stm]))                          ppBlock (case body of CL.S_Block stms => stms | stm => [stm]);
123                          PP.closeBox strm)
124                    | CL.D_StructDef(SOME name, fields, NONE) => (                    | CL.D_StructDef(SOME name, fields, NONE) => (
125                          PP.openVBox strm indent0;
126                        inHBox (fn () => (str "struct"; sp(); str name; sp(); str "{"));                        inHBox (fn () => (str "struct"; sp(); str name; sp(); str "{"));
127                        PP.openVBox strm indent;                        PP.openVBox strm indent;
128                          List.app (fn (ty, x) => (                          List.app (fn (ty, x) => (
# Line 128  Line 132 
132                        PP.closeBox strm;                        PP.closeBox strm;
133                        PP.newline strm;                        PP.newline strm;
134                        str "};";                        str "};";
135                          PP.closeBox strm;
136                        PP.newline strm)                        PP.newline strm)
137                    | CL.D_StructDef(optStruct, fields, SOME tyName) => (                    | CL.D_StructDef(optStruct, fields, SOME tyName) => (
138                          PP.openVBox strm indent0;
139                        str "typedef struct {";                        str "typedef struct {";
140                        PP.openVBox strm indent;                        PP.openVBox strm indent;
141                          List.app (fn (ty, x) => (                          List.app (fn (ty, x) => (
# Line 139  Line 145 
145                        PP.closeBox strm;                        PP.closeBox strm;
146                        PP.newline strm;                        PP.newline strm;
147                        inHBox (fn () => (str "}"; sp(); str tyName; str ";"));                        inHBox (fn () => (str "}"; sp(); str tyName; str ";"));
148                            PP.closeBox strm;
149                        PP.newline strm)                        PP.newline strm)
150                  (* end case *))                  (* end case *))
151            and ppParam (CL.PARAM(attrs, ty, x)) = (            and ppParam (CL.PARAM(attrs, ty, x)) = (

Legend:
Removed from v.1717  
changed lines
  Added in v.1718

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