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

SCM Repository

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

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

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

revision 1115, Thu May 5 04:42:18 2011 UTC revision 1368, Wed Jun 22 20:58:28 2011 UTC
# Line 80  Line 80 
80                    str (getBaseTy ty);                    str (getBaseTy ty);
81                    pp (true, ty, optVar)                    pp (true, ty, optVar)
82                  end                  end
83              fun ppAttrs [] = ()
84                | ppAttrs attrs = (
85                    ppList {pp=str, sep=sp, l = attrs};
86                    sp())
87            fun ppDecl dcl = (case dcl            fun ppDecl dcl = (case dcl
88                   of CL.D_Comment l => List.app ppComLn l                   of CL.D_Comment l => List.app ppComLn l
89                    | CL.D_Verbatim l =>                    | CL.D_Verbatim l =>
90                        List.app (fn s => (str s; PP.newline strm)) l                        List.app (fn s => (str s; PP.newline strm)) l
91                    | CL.D_Var(attrs, ty, x, optInit) => (                    | CL.D_Var(attrs, ty, x, optInit) => (
92                        inHBox (fn () => (                        inHBox (fn () => (
93                          ppList {pp=str, sep=sp, l = attrs};                          ppAttrs attrs;
                         if List.null attrs then () else sp();  
94                          ppTy (ty, SOME x);                          ppTy (ty, SOME x);
95                          case optInit                          case optInit
96                           of SOME init => (sp(); str "="; sp(); ppInit init)                           of SOME init => (sp(); str "="; sp(); ppInit init)
# Line 97  Line 100 
100                        PP.newline strm)                        PP.newline strm)
101                    | CL.D_Func(attrs, ty, f, params, body) => (                    | CL.D_Func(attrs, ty, f, params, body) => (
102                        inHBox (fn () => (                        inHBox (fn () => (
103                          ppList {pp=str, sep=sp, l = attrs};                          ppAttrs attrs;
                         if List.null attrs then () else sp();  
104                          ppTy(ty, SOME f);                          ppTy(ty, SOME f);
105                          sp(); str "(";                          sp(); str "(";
106                          ppList {pp=ppParam, sep=fn () => (str ","; sp()), l=params};                          ppList {pp=ppParam, sep=fn () => (str ","; sp()), l=params};
# Line 118  Line 120 
120                        PP.newline strm)                        PP.newline strm)
121                  (* end case *))                  (* end case *))
122            and ppParam (CL.PARAM(attrs, ty, x)) = (            and ppParam (CL.PARAM(attrs, ty, x)) = (
123                  ppList {pp=str, sep=sp, l = attrs};                  ppAttrs attrs;
                 if List.null attrs then () else sp();  
124                  ppTy(ty, SOME(CL.varToString x)))                  ppTy(ty, SOME(CL.varToString x)))
125            and ppInit init = (case init            and ppInit init = (case init
126                   of CL.I_Exp e => ppExp e                   of CL.I_Exp e => ppExp e
# Line 155  Line 156 
156            and ppStm stm = (case stm            and ppStm stm = (case stm
157                   of CL.S_Block stms => ppBlock stms                   of CL.S_Block stms => ppBlock stms
158                    | CL.S_Comment l => List.app ppComLn l                    | CL.S_Comment l => List.app ppComLn l
159                    | CL.S_Decl(ty, x, NONE) => (                    | CL.S_Decl(attrs, ty, x, NONE) => (
160                        inHBox (fn () => (ppTy(ty, SOME x); str ";")); PP.newline strm)                        inHBox ( fn () => (
161                    | CL.S_Decl(ty, x, SOME e) => (                          ppAttrs attrs;
162                            ppTy(ty, SOME x); str ";"));
163                          PP.newline strm)
164                      | CL.S_Decl(attrs, ty, x, SOME e) => (
165                        inHBox (fn () => (                        inHBox (fn () => (
166                            ppAttrs attrs;
167                          ppTy(ty, SOME x); sp(); str "="; sp(); ppInit e; str ";"));                          ppTy(ty, SOME x); sp(); str "="; sp(); ppInit e; str ";"));
168                        PP.newline strm)                        PP.newline strm)
169                    | CL.S_Exp e => (                    | CL.S_Exp e => (

Legend:
Removed from v.1115  
changed lines
  Added in v.1368

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