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

SCM Repository

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

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

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

revision 3153, Fri Mar 27 17:42:02 2015 UTC revision 3154, Fri Mar 27 21:29:59 2015 UTC
# Line 450  Line 450 
450                CL.mkCall("exit", [intExp 1]))]                CL.mkCall("exit", [intExp 1]))]
451            end            end
452    
453        fun registerInput (env, lhs, name, optDesc, hasDflt) = let
454              val desc = Option.getOpt (optDesc, "")
455              val hasDflt = if hasDflt then "true" else "false"
456              in
457                CL.mkCall(N.input(V.ty lhs), [
458                    CL.mkVar "opts", CL.mkStr name, CL.mkStr desc,
459                    CL.mkUnOp(CL.%&, VarToC.lvalueVar(env, lhs)), CL.mkVar hasDflt
460                  ])
461              end
462    
463      fun trStms (env, stms) = let      fun trStms (env, stms) = let
464            fun trStmt (env, stm) = (case stm            fun trStmt (env, stm) = (case stm
465                   of IL.S_Comment text => [CL.mkComment text]                   of IL.S_Comment text => [CL.mkComment text]
# Line 468  Line 478 
478                        trMultiAssign (env, List.map VarToC.lvalueStateVar xs, exp)                        trMultiAssign (env, List.map VarToC.lvalueStateVar xs, exp)
479                    | IL.S_LoadNrrd(lhs, Ty.ImageTy info, nrrd) =>                    | IL.S_LoadNrrd(lhs, Ty.ImageTy info, nrrd) =>
480                        [GenLoadNrrd.loadImage (VarToC.lvalueVar (env, lhs), info, CL.E_Str nrrd)]                        [GenLoadNrrd.loadImage (VarToC.lvalueVar (env, lhs), info, CL.E_Str nrrd)]
481                    | IL.S_Input(_, _, _, NONE) => []                    | IL.S_Input(lhs, name, optDesc, NONE) =>
482                    | IL.S_Input(lhs, name, _, SOME dflt) => [                        [registerInput (env, lhs, name, optDesc, false)]
483                          CL.mkAssign(VarToC.lvalueVar(env, lhs), trExp(env, dflt))                    | IL.S_Input(lhs, name, optDesc, SOME dflt) => [
484                            CL.mkAssign(VarToC.lvalueVar(env, lhs), trExp(env, dflt)),
485                            registerInput (env, lhs, name, optDesc, true)
486                        ]                        ]
487                    | IL.S_InputNrrd _ => []                    | IL.S_InputNrrd _ => []
488                    | IL.S_Exit args => [CL.mkReturn NONE]                    | IL.S_Exit args => [CL.mkReturn NONE]

Legend:
Removed from v.3153  
changed lines
  Added in v.3154

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