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

SCM Repository

[diderot] Diff of /branches/charisee/src/compiler/tree-il/tree-il-pp.sml
ViewVC logotype

Diff of /branches/charisee/src/compiler/tree-il/tree-il-pp.sml

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

revision 1130, Thu May 5 18:39:29 2011 UTC revision 1131, Thu May 5 18:53:48 2011 UTC
# Line 113  Line 113 
113                    ]);                    ]);
114                  ppBlock (out, blk);                  ppBlock (out, blk);
115                  pr (out, "\n"))                  pr (out, "\n"))
             | IL.S_Cons(x, args) => let  
                 fun mkStrings [] = []  
                   | mkStrings [e] = [expToString e]  
                   | mkStrings (e::es) = (expToString e ^ ",") :: mkStrings es  
                 val args = mkStrings args  
                 in  
                   if (List.foldl (fn (s, n) => n+size s) 0 args > 60)  
                     then let  
                       val out' = incIndent out  
                       val out'' = incIndent out'  
                       fun prArgs (_, []) = (  
                             pr (out', "\n");  
                             prln (out', ["};\n"]))  
                         | prArgs (n, arg::args) =  
                             if (n = 0)  
                               then (  
                                 prln (out'', [arg]);  
                                 prArgs (n + size arg, args))  
                             else if (n + size arg > 60)  
                               then (  
                                 pr(out'', "\n");  
                                 prArgs (0, arg::args))  
                               else (  
                                 pr(out'', " ");  
                                 pr(out'', arg);  
                                 prArgs (n + size arg + 1, args))  
                       in  
                         prln (out, [Var.name x, " = {\n"]);  
                         prArgs (0, args)  
                       end  
                     else (  
                       prln (out, Var.name x :: " = {" :: args);  
                       pr (out, "};\n"))  
                 end  
             | IL.S_LoadVoxels(x, dim, exp) =>  
                 prln (out, [  
                     Var.name x, " = loadVoxels<",  
                     Int.toString dim, "> (", expToString exp, ");\n"  
                   ])  
116  *)  *)
117                | IL.S_New(strand, args) =>
118                    prln (out, [argsToString("new "^Atom.toString strand, args), ";\n"])
119              | IL.S_LoadImage(x, dim, exp) =>              | IL.S_LoadImage(x, dim, exp) =>
120                  prln (out, [                  prln (out, [
121                      Var.name x, " = load<", Int.toString dim, "> (", expToString exp, ");\n"                      Var.name x, " = load<", Int.toString dim, "> (", expToString exp, ");\n"
# Line 178  Line 141 
141    
142      fun block (outS, blk) = (ppBlock ((outS, 0), blk); pr ((outS, 0), "\n"))      fun block (outS, blk) = (ppBlock ((outS, 0), blk); pr ((outS, 0), "\n"))
143    
144      fun program (outS, IL.Program{globals, globalInit, strands, initially}) = let      fun program (outS, IL.Program{props, globals, globalInit, strands, initially}) = let
145            val out = (outS, 0)            val out = (outS, 0)
146            val out' = incIndent out            val out' = incIndent out
147            in            in
148                pr(out, "//***** PROPERTIES *****\n");
149                case props
150                 of [] => prln(out', ["none\n"])
151                  | _ => prln(out', [String.concatWith " " (List.map IL.propToString props), "\n"])
152                (* end case *);
153              prln(out, ["//***** GLOBALS *****\n"]);              prln(out, ["//***** GLOBALS *****\n"]);
154              List.app (ppVarDecl out') globals;              List.app (ppVarDecl out') globals;
155              prln(out, ["//***** GLOBAL INIT *****\n"]);              prln(out, ["//***** GLOBAL INIT *****\n"]);

Legend:
Removed from v.1130  
changed lines
  Added in v.1131

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