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/gen-library-interface.sml
ViewVC logotype

Diff of /branches/vis12/src/compiler/c-util/gen-library-interface.sml

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

revision 1811, Sat Apr 7 20:46:07 2012 UTC revision 1812, Sat Apr 7 21:33:09 2012 UTC
# Line 58  Line 58 
58                          then []                          then []
59                          else [                          else [
60                              CL.D_Var(["extern"], CL.T_Ptr(CL.T_Named "const char"),                              CL.D_Var(["extern"], CL.T_Ptr(CL.T_Named "const char"),
61                                concat[prefix, "Desc_", name], NONE)                                concat[prefix, name, "Desc"], NONE)
62                            ]                            ]
63                  val getDcl = if hasDflt                  val getDcl = if hasDflt
64                          then let                          then let
65                            val name = concat[prefix, name]                            val name = concat[prefix, name, "Get"]
66                          (* convert the input type to a by-reference C type *)                          (* convert the input type to a by-reference C type *)
67                            val outTy = (case ty                            val outTy = (case ty
68                                   of Ty.BoolTy => CL.T_Ptr(trType ty)                                   of Ty.BoolTy => CL.T_Ptr(trType ty)
# Line 82  Line 82 
82                  val setDcl = (case ty                  val setDcl = (case ty
83                         of Ty.ImageTy _ => [                         of Ty.ImageTy _ => [
84                                CL.D_Proto(                                CL.D_Proto(
85                                  [], CL.boolTy, concat[prefix, "Set_", name, "_ByName"],                                  [], CL.boolTy, concat[prefix, name, "SetByName"],
86                                  [wrldParam, CL.PARAM(["const"], CL.charPtr, "s")]),                                  [wrldParam, CL.PARAM(["const"], CL.charPtr, "s")]),
87                                CL.D_Proto(                                CL.D_Proto(
88                                  [], CL.boolTy, concat[prefix, "Set_", name],                                  [], CL.boolTy, concat[prefix, name, "Set"],
89                                  [wrldParam, CL.PARAM([], nrrdPtrTy, "data")])                                  [wrldParam, CL.PARAM([], nrrdPtrTy, "data")])
90                              ]                              ]
91                          | Ty.DynSeqTy _ => raise Fail "dynamic input not supported yet"                          | Ty.DynSeqTy _ => raise Fail "dynamic input not supported yet"
92                          | _ => [                          | _ => [
93                                CL.D_Proto(                                CL.D_Proto(
94                                  [], CL.boolTy, concat[prefix, "Set_", name],                                  [], CL.boolTy, concat[prefix, name, "Set"],
95                                  [wrldParam, CL.PARAM([], trType ty, "v")])                                  [wrldParam, CL.PARAM([], trType ty, "v")])
96                              ]                              ]
97                        (* end case *))                        (* end case *))
# Line 101  Line 101 
101          (* create a decl for an output variable *)          (* create a decl for an output variable *)
102            fun mkGetDecl (Ty.DynSeqTy _, name) = [            fun mkGetDecl (Ty.DynSeqTy _, name) = [
103                    CL.D_Proto(                    CL.D_Proto(
104                      [], CL.boolTy, concat[prefix, "Get_", name],                      [], CL.boolTy, concat[prefix, name, "Out"],
105                      [CL.PARAM([], worldPtrTy, "wrld"), CL.PARAM([], nrrdPtrTy, "lengths"), CL.PARAM([], nrrdPtrTy, "data")])                      [CL.PARAM([], worldPtrTy, "wrld"), CL.PARAM([], nrrdPtrTy, "lengths"), CL.PARAM([], nrrdPtrTy, "data")])
106                  ]                  ]
107              | mkGetDecl (_, name) = [              | mkGetDecl (_, name) = [
108                    CL.D_Proto(                    CL.D_Proto(
109                      [], CL.boolTy, concat[prefix, "Get_", name],                      [], CL.boolTy, concat[prefix, name, "Out"],
110                      [CL.PARAM([], worldPtrTy, "wrld"), CL.PARAM([], nrrdPtrTy, "data")])                      [CL.PARAM([], worldPtrTy, "wrld"), CL.PARAM([], nrrdPtrTy, "data")])
111                  ]                  ]
112            val placeholders = [            val placeholders = [
# Line 122  Line 122 
122            val outS = PrC.new outStrm            val outS = PrC.new outStrm
123            in            in
124              PrC.output (outS, CL.verbatim [LibInterfaceHeadFrag.text] placeholders);              PrC.output (outS, CL.verbatim [LibInterfaceHeadFrag.text] placeholders);
125              PrC.output (outS, CL.D_Verbatim ["\n/**** Input functions, etc. ****/\n"]);              PrC.output (outS, CL.D_Verbatim ["\n/**** Functions etc. for input variables ****/\n"]);
126              List.app (fn input => List.app (fn dcl => PrC.output(outS, dcl)) (mkInputDecls input)) inputs;              List.app (fn input => List.app (fn dcl => PrC.output(outS, dcl)) (mkInputDecls input)) inputs;
127              PrC.output (outS, CL.verbatim [LibInterfaceBodyFrag.text] placeholders);              PrC.output (outS, CL.verbatim [LibInterfaceBodyFrag.text] placeholders);
128              PrC.output (outS, CL.D_Verbatim ["\n/**** Getters for output values ****/\n"]);              PrC.output (outS, CL.D_Verbatim ["\n/**** Getters for output values ****/\n"]);

Legend:
Removed from v.1811  
changed lines
  Added in v.1812

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