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

SCM Repository

[diderot] Diff of /branches/charisee/src/compiler/c-util/tree-to-c-fn.sml
ViewVC logotype

Diff of /branches/charisee/src/compiler/c-util/tree-to-c-fn.sml

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

revision 3171, Sun Mar 29 23:12:10 2015 UTC revision 3172, Sun Mar 29 23:35:28 2015 UTC
# Line 572  Line 572 
572                        [GenLoadNrrd.loadImage (VarToC.lvalueVar (env, lhs), info, CL.E_Str nrrd)]                        [GenLoadNrrd.loadImage (VarToC.lvalueVar (env, lhs), info, CL.E_Str nrrd)]
573                    | IL.S_Input(lhs, name, optDesc, NONE) =>                    | IL.S_Input(lhs, name, optDesc, NONE) =>
574                        [registerInput (env, lhs, name, optDesc, false)]                        [registerInput (env, lhs, name, optDesc, false)]
575    (* FIXME: it may be best to just use the Inputs.initializer type in the TreeIL!!! *)
576                      | IL.S_Input(lhs, name, optDesc, SOME(IL.E_Mux(_, _, _, _, args))) => let
577                          val args = List.concat(List.map (fn (IL.E_Cons(_, n, es)) => List.take(es, n)) args)
578                          val lhs' = VarToC.lvalueVar(env, lhs)
579                          fun mk (_, [], stms) = List.revAppend(stms, [registerInput (env, lhs, name, optDesc, true)])
580                            | mk (i, e::es, stms) = let
581                                val stm = CL.mkAssign(CL.mkSubscript(lhs', CL.mkInt i), trExp(env, e))
582                                in
583                                  mk (i+1, es, stm::stms)
584                                end
585                          in
586                            mk (0, args, [])
587                          end
588                    | IL.S_Input(lhs, name, optDesc, SOME dflt) => [                    | IL.S_Input(lhs, name, optDesc, SOME dflt) => [
589                          CL.mkAssign(VarToC.lvalueVar(env, lhs), trExp(env, dflt)),                          CL.mkAssign(VarToC.lvalueVar(env, lhs), trExp(env, dflt)),
590                          registerInput (env, lhs, name, optDesc, true)                          registerInput (env, lhs, name, optDesc, true)

Legend:
Removed from v.3171  
changed lines
  Added in v.3172

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