summaryrefslogtreecommitdiff
path: root/Lib/ocaml
diff options
context:
space:
mode:
authorZackery Spytz <zspytz@gmail.com>2019-02-18 23:02:20 -0700
committerZackery Spytz <zspytz@gmail.com>2019-02-18 23:02:20 -0700
commit1eb9cd3211ef646aa4683dd976eb2d06d6826bcc (patch)
treedeee4e5362b32c71022f3844122c453bac8825fc /Lib/ocaml
parent092c51c06e87a5b2a15efc1eb488414302a3e375 (diff)
downloadswig-1eb9cd3211ef646aa4683dd976eb2d06d6826bcc.tar.gz
[OCaml] Move INPUT, OUTPUT, and INOUT typemaps to typemaps.i
Diffstat (limited to 'Lib/ocaml')
-rw-r--r--Lib/ocaml/typecheck.i38
-rw-r--r--Lib/ocaml/typemaps.i44
2 files changed, 44 insertions, 38 deletions
diff --git a/Lib/ocaml/typecheck.i b/Lib/ocaml/typecheck.i
index 74d2727e1..0c0a600a0 100644
--- a/Lib/ocaml/typecheck.i
+++ b/Lib/ocaml/typecheck.i
@@ -172,44 +172,6 @@
%typecheck(SWIG_TYPECHECK_SWIGOBJECT) CAML_VALUE "$1 = 1;"
-%define INPUT_OUTPUT_INOUT_TYPEMAPS(type, c_to_ocaml, ocaml_to_c)
-%typemap(in) type *INPUT(type temp), type &INPUT(type temp) {
- temp = (type)ocaml_to_c($input);
- $1 = &temp;
-}
-%typemap(typecheck) type *INPUT = type;
-%typemap(typecheck) type &INPUT = type;
-
-%typemap(in, numinputs=0) type *OUTPUT($*1_ltype temp), type &OUTPUT($*1_ltype temp) "$1 = &temp;"
-%typemap(argout) type *OUTPUT, type &OUTPUT {
- swig_result = caml_list_append(swig_result, c_to_ocaml(*$1));
-}
-%typemap(in) type *INOUT = type *INPUT;
-%typemap(in) type &INOUT = type &INPUT;
-
-%typemap(argout) type *INOUT = type *OUTPUT;
-%typemap(argout) type &INOUT = type &OUTPUT;
-
-%typemap(typecheck) type *INOUT = type;
-%typemap(typecheck) type &INOUT = type;
-%enddef
-
-INPUT_OUTPUT_INOUT_TYPEMAPS(bool, caml_val_bool, caml_long_val);
-INPUT_OUTPUT_INOUT_TYPEMAPS(int, caml_val_int, caml_long_val);
-INPUT_OUTPUT_INOUT_TYPEMAPS(long, caml_val_long, caml_long_val);
-INPUT_OUTPUT_INOUT_TYPEMAPS(short, caml_val_int, caml_long_val);
-INPUT_OUTPUT_INOUT_TYPEMAPS(char, caml_val_char, caml_long_val);
-INPUT_OUTPUT_INOUT_TYPEMAPS(signed char, caml_val_char, caml_long_val);
-INPUT_OUTPUT_INOUT_TYPEMAPS(float, caml_val_float, caml_double_val);
-INPUT_OUTPUT_INOUT_TYPEMAPS(double, caml_val_double, caml_double_val);
-INPUT_OUTPUT_INOUT_TYPEMAPS(unsigned int, caml_val_uint, caml_long_val);
-INPUT_OUTPUT_INOUT_TYPEMAPS(unsigned long, caml_val_ulong, caml_long_val);
-INPUT_OUTPUT_INOUT_TYPEMAPS(unsigned short, caml_val_ushort, caml_long_val);
-INPUT_OUTPUT_INOUT_TYPEMAPS(unsigned char, caml_val_uchar, caml_long_val);
-INPUT_OUTPUT_INOUT_TYPEMAPS(long long, caml_val_long, caml_long_val);
-INPUT_OUTPUT_INOUT_TYPEMAPS(unsigned long long, caml_val_ulong, caml_long_val);
-#undef INPUT_OUTPUT_INOUT_TYPEMAPS
-
/* ------------------------------------------------------------
* Exception handling
* ------------------------------------------------------------ */
diff --git a/Lib/ocaml/typemaps.i b/Lib/ocaml/typemaps.i
new file mode 100644
index 000000000..39231e221
--- /dev/null
+++ b/Lib/ocaml/typemaps.i
@@ -0,0 +1,44 @@
+/* ----------------------------------------------------------------------------
+ * typemaps.i
+ *
+ * These typemaps provide support for input/output arguments for C/C++ pointers
+ * and C++ references.
+* ---------------------------------------------------------------------------- */
+
+%define INPUT_OUTPUT_INOUT_TYPEMAPS(type, c_to_ocaml, ocaml_to_c)
+%typemap(in) type *INPUT(type temp), type &INPUT(type temp) {
+ temp = (type)ocaml_to_c($input);
+ $1 = &temp;
+}
+%typemap(typecheck) type *INPUT = type;
+%typemap(typecheck) type &INPUT = type;
+
+%typemap(in, numinputs=0) type *OUTPUT($*1_ltype temp), type &OUTPUT($*1_ltype temp) "$1 = &temp;"
+%typemap(argout) type *OUTPUT, type &OUTPUT {
+ swig_result = caml_list_append(swig_result, c_to_ocaml(*$1));
+}
+%typemap(in) type *INOUT = type *INPUT;
+%typemap(in) type &INOUT = type &INPUT;
+
+%typemap(argout) type *INOUT = type *OUTPUT;
+%typemap(argout) type &INOUT = type &OUTPUT;
+
+%typemap(typecheck) type *INOUT = type;
+%typemap(typecheck) type &INOUT = type;
+%enddef
+
+INPUT_OUTPUT_INOUT_TYPEMAPS(bool, caml_val_bool, caml_long_val);
+INPUT_OUTPUT_INOUT_TYPEMAPS(int, caml_val_int, caml_long_val);
+INPUT_OUTPUT_INOUT_TYPEMAPS(long, caml_val_long, caml_long_val);
+INPUT_OUTPUT_INOUT_TYPEMAPS(short, caml_val_int, caml_long_val);
+INPUT_OUTPUT_INOUT_TYPEMAPS(char, caml_val_char, caml_long_val);
+INPUT_OUTPUT_INOUT_TYPEMAPS(signed char, caml_val_char, caml_long_val);
+INPUT_OUTPUT_INOUT_TYPEMAPS(float, caml_val_float, caml_double_val);
+INPUT_OUTPUT_INOUT_TYPEMAPS(double, caml_val_double, caml_double_val);
+INPUT_OUTPUT_INOUT_TYPEMAPS(unsigned int, caml_val_uint, caml_long_val);
+INPUT_OUTPUT_INOUT_TYPEMAPS(unsigned long, caml_val_ulong, caml_long_val);
+INPUT_OUTPUT_INOUT_TYPEMAPS(unsigned short, caml_val_ushort, caml_long_val);
+INPUT_OUTPUT_INOUT_TYPEMAPS(unsigned char, caml_val_uchar, caml_long_val);
+INPUT_OUTPUT_INOUT_TYPEMAPS(long long, caml_val_long, caml_long_val);
+INPUT_OUTPUT_INOUT_TYPEMAPS(unsigned long long, caml_val_ulong, caml_long_val);
+#undef INPUT_OUTPUT_INOUT_TYPEMAPS