PageRenderTime 55ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/Lib/mzscheme/std_pair.i

#
Swig | 870 lines | 826 code | 23 blank | 21 comment | 0 complexity | 836235f4704120082071d11022119ad1 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. /* -----------------------------------------------------------------------------
  2. * std_pair.i
  3. *
  4. * SWIG typemaps for std::pair
  5. * ----------------------------------------------------------------------------- */
  6. %include <std_common.i>
  7. %include <exception.i>
  8. // ------------------------------------------------------------------------
  9. // std::pair
  10. //
  11. // See std_vector.i for the rationale of typemap application
  12. // ------------------------------------------------------------------------
  13. %{
  14. #include <utility>
  15. %}
  16. // exported class
  17. namespace std {
  18. template<class T, class U> struct pair {
  19. %typemap(in) pair<T,U> (std::pair<T,U>* m) {
  20. if (SCHEME_PAIRP($input)) {
  21. T* x;
  22. U* y;
  23. Scheme_Object *first, *second;
  24. first = scheme_car($input);
  25. second = scheme_cdr($input);
  26. x = (T*) SWIG_MustGetPtr(first,$descriptor(T *),$argnum, 0);
  27. y = (U*) SWIG_MustGetPtr(second,$descriptor(U *),$argnum, 0);
  28. $1 = std::make_pair(*x,*y);
  29. } else {
  30. $1 = *(($&1_type)
  31. SWIG_MustGetPtr($input,$&1_descriptor,$argnum, 0));
  32. }
  33. }
  34. %typemap(in) const pair<T,U>& (std::pair<T,U> temp,
  35. std::pair<T,U>* m),
  36. const pair<T,U>* (std::pair<T,U> temp,
  37. std::pair<T,U>* m) {
  38. if (SCHEME_PAIRP($input)) {
  39. T* x;
  40. U* y;
  41. Scheme_Object *first, *second;
  42. first = scheme_car($input);
  43. second = scheme_cdr($input);
  44. x = (T*) SWIG_MustGetPtr(first,$descriptor(T *),$argnum, 0);
  45. y = (U*) SWIG_MustGetPtr(second,$descriptor(U *),$argnum, 0);
  46. temp = std::make_pair(*x,*y);
  47. $1 = &temp;
  48. } else {
  49. $1 = ($1_ltype)
  50. SWIG_MustGetPtr($input,$1_descriptor,$argnum, 0);
  51. }
  52. }
  53. %typemap(out) pair<T,U> {
  54. T* x = new T($1.first);
  55. U* y = new U($1.second);
  56. Scheme_Object* first = SWIG_NewPointerObj(x,$descriptor(T *), 1);
  57. Scheme_Object* second = SWIG_NewPointerObj(y,$descriptor(U *), 1);
  58. $result = scheme_make_pair(first,second);
  59. }
  60. %typecheck(SWIG_TYPECHECK_PAIR) pair<T,U> {
  61. /* native pair? */
  62. if (SCHEME_PAIRP($input)) {
  63. T* x;
  64. U* y;
  65. Scheme_Object* first = scheme_car($input);
  66. Scheme_Object* second = scheme_cdr($input);
  67. if (SWIG_ConvertPtr(first,(void**) &x,
  68. $descriptor(T *), 0) != -1 &&
  69. SWIG_ConvertPtr(second,(void**) &y,
  70. $descriptor(U *), 0) != -1) {
  71. $1 = 1;
  72. } else {
  73. $1 = 0;
  74. }
  75. } else {
  76. /* wrapped pair? */
  77. std::pair<T,U >* p;
  78. if (SWIG_ConvertPtr($input,(void **) &p,
  79. $&1_descriptor, 0) != -1)
  80. $1 = 1;
  81. else
  82. $1 = 0;
  83. }
  84. }
  85. %typecheck(SWIG_TYPECHECK_PAIR) const pair<T,U>&,
  86. const pair<T,U>* {
  87. /* native pair? */
  88. if (SCHEME_PAIRP($input)) {
  89. T* x;
  90. U* y;
  91. Scheme_Object* first = scheme_car($input);
  92. Scheme_Object* second = scheme_cdr($input);
  93. if (SWIG_ConvertPtr(first,(void**) &x,
  94. $descriptor(T *), 0) != -1 &&
  95. SWIG_ConvertPtr(second,(void**) &y,
  96. $descriptor(U *), 0) != -1) {
  97. $1 = 1;
  98. } else {
  99. $1 = 0;
  100. }
  101. } else {
  102. /* wrapped pair? */
  103. std::pair<T,U >* p;
  104. if (SWIG_ConvertPtr($input,(void **) &p,
  105. $1_descriptor, 0) != -1)
  106. $1 = 1;
  107. else
  108. $1 = 0;
  109. }
  110. }
  111. pair();
  112. pair(T first, U second);
  113. pair(const pair& p);
  114. template <class U1, class U2> pair(const pair<U1, U2> &p);
  115. T first;
  116. U second;
  117. };
  118. // specializations for built-ins
  119. %define specialize_std_pair_on_first(T,CHECK,CONVERT_FROM,CONVERT_TO)
  120. template<class U> struct pair<T,U> {
  121. %typemap(in) pair<T,U> (std::pair<T,U>* m) {
  122. if (SCHEME_PAIRP($input)) {
  123. U* y;
  124. Scheme_Object *first, *second;
  125. first = scheme_car($input);
  126. second = scheme_cdr($input);
  127. if (!CHECK(first))
  128. SWIG_exception(SWIG_TypeError,
  129. "pair<" #T "," #U "> expected");
  130. y = (U*) SWIG_MustGetPtr(second,$descriptor(U *),$argnum, 0);
  131. $1 = std::make_pair(CONVERT_FROM(first),*y);
  132. } else {
  133. $1 = *(($&1_type)
  134. SWIG_MustGetPtr($input,$&1_descriptor,$argnum, 0));
  135. }
  136. }
  137. %typemap(in) const pair<T,U>& (std::pair<T,U> temp,
  138. std::pair<T,U>* m),
  139. const pair<T,U>* (std::pair<T,U> temp,
  140. std::pair<T,U>* m) {
  141. if (SCHEME_PAIRP($input)) {
  142. U* y;
  143. Scheme_Object *first, *second;
  144. first = scheme_car($input);
  145. second = scheme_cdr($input);
  146. if (!CHECK(first))
  147. SWIG_exception(SWIG_TypeError,
  148. "pair<" #T "," #U "> expected");
  149. y = (U*) SWIG_MustGetPtr(second,$descriptor(U *),$argnum, 0);
  150. temp = std::make_pair(CONVERT_FROM(first),*y);
  151. $1 = &temp;
  152. } else {
  153. $1 = ($1_ltype)
  154. SWIG_MustGetPtr($input,$1_descriptor,$argnum, 0);
  155. }
  156. }
  157. %typemap(out) pair<T,U> {
  158. U* y = new U($1.second);
  159. Scheme_Object* second = SWIG_NewPointerObj(y,$descriptor(U *), 1);
  160. $result = scheme_make_pair(CONVERT_TO($1.first),second);
  161. }
  162. %typecheck(SWIG_TYPECHECK_PAIR) pair<T,U> {
  163. /* native pair? */
  164. if (SCHEME_PAIRP($input)) {
  165. U* y;
  166. Scheme_Object* first = scheme_car($input);
  167. Scheme_Object* second = scheme_cdr($input);
  168. if (CHECK(first) &&
  169. SWIG_ConvertPtr(second,(void**) &y,
  170. $descriptor(U *), 0) != -1) {
  171. $1 = 1;
  172. } else {
  173. $1 = 0;
  174. }
  175. } else {
  176. /* wrapped pair? */
  177. std::pair<T,U >* p;
  178. if (SWIG_ConvertPtr($input,(void **) &p,
  179. $&1_descriptor, 0) != -1)
  180. $1 = 1;
  181. else
  182. $1 = 0;
  183. }
  184. }
  185. %typecheck(SWIG_TYPECHECK_PAIR) const pair<T,U>&,
  186. const pair<T,U>* {
  187. /* native pair? */
  188. if (SCHEME_PAIRP($input)) {
  189. U* y;
  190. Scheme_Object* first = scheme_car($input);
  191. Scheme_Object* second = scheme_cdr($input);
  192. if (CHECK(first) &&
  193. SWIG_ConvertPtr(second,(void**) &y,
  194. $descriptor(U *), 0) != -1) {
  195. $1 = 1;
  196. } else {
  197. $1 = 0;
  198. }
  199. } else {
  200. /* wrapped pair? */
  201. std::pair<T,U >* p;
  202. if (SWIG_ConvertPtr($input,(void **) &p,
  203. $1_descriptor, 0) != -1)
  204. $1 = 1;
  205. else
  206. $1 = 0;
  207. }
  208. }
  209. pair();
  210. pair(T first, U second);
  211. pair(const pair& p);
  212. template <class U1, class U2> pair(const pair<U1, U2> &p);
  213. T first;
  214. U second;
  215. };
  216. %enddef
  217. %define specialize_std_pair_on_second(U,CHECK,CONVERT_FROM,CONVERT_TO)
  218. template<class T> struct pair<T,U> {
  219. %typemap(in) pair<T,U> (std::pair<T,U>* m) {
  220. if (SCHEME_PAIRP($input)) {
  221. T* x;
  222. Scheme_Object *first, *second;
  223. first = scheme_car($input);
  224. second = scheme_cdr($input);
  225. x = (T*) SWIG_MustGetPtr(first,$descriptor(T *),$argnum, 0);
  226. if (!CHECK(second))
  227. SWIG_exception(SWIG_TypeError,
  228. "pair<" #T "," #U "> expected");
  229. $1 = std::make_pair(*x,CONVERT_FROM(second));
  230. } else {
  231. $1 = *(($&1_type)
  232. SWIG_MustGetPtr($input,$&1_descriptor,$argnum, 0));
  233. }
  234. }
  235. %typemap(in) const pair<T,U>& (std::pair<T,U> temp,
  236. std::pair<T,U>* m),
  237. const pair<T,U>* (std::pair<T,U> temp,
  238. std::pair<T,U>* m) {
  239. if (SCHEME_PAIRP($input)) {
  240. T* x;
  241. Scheme_Object *first, *second;
  242. first = scheme_car($input);
  243. second = scheme_cdr($input);
  244. x = (T*) SWIG_MustGetPtr(first,$descriptor(T *),$argnum, 0);
  245. if (!CHECK(second))
  246. SWIG_exception(SWIG_TypeError,
  247. "pair<" #T "," #U "> expected");
  248. temp = std::make_pair(*x,CONVERT_FROM(second));
  249. $1 = &temp;
  250. } else {
  251. $1 = ($1_ltype)
  252. SWIG_MustGetPtr($input,$1_descriptor,$argnum, 0);
  253. }
  254. }
  255. %typemap(out) pair<T,U> {
  256. T* x = new T($1.first);
  257. Scheme_Object* first = SWIG_NewPointerObj(x,$descriptor(T *), 1);
  258. $result = scheme_make_pair(first,CONVERT_TO($1.second));
  259. }
  260. %typecheck(SWIG_TYPECHECK_PAIR) pair<T,U> {
  261. /* native pair? */
  262. if (SCHEME_PAIRP($input)) {
  263. T* x;
  264. Scheme_Object* first = scheme_car($input);
  265. Scheme_Object* second = scheme_cdr($input);
  266. if (SWIG_ConvertPtr(first,(void**) &x,
  267. $descriptor(T *), 0) != -1 &&
  268. CHECK(second)) {
  269. $1 = 1;
  270. } else {
  271. $1 = 0;
  272. }
  273. } else {
  274. /* wrapped pair? */
  275. std::pair<T,U >* p;
  276. if (SWIG_ConvertPtr($input,(void **) &p,
  277. $&1_descriptor, 0) != -1)
  278. $1 = 1;
  279. else
  280. $1 = 0;
  281. }
  282. }
  283. %typecheck(SWIG_TYPECHECK_PAIR) const pair<T,U>&,
  284. const pair<T,U>* {
  285. /* native pair? */
  286. if (SCHEME_PAIRP($input)) {
  287. T* x;
  288. Scheme_Object* first = scheme_car($input);
  289. Scheme_Object* second = scheme_cdr($input);
  290. if (SWIG_ConvertPtr(first,(void**) &x,
  291. $descriptor(T *), 0) != -1 &&
  292. CHECK(second)) {
  293. $1 = 1;
  294. } else {
  295. $1 = 0;
  296. }
  297. } else {
  298. /* wrapped pair? */
  299. std::pair<T,U >* p;
  300. if (SWIG_ConvertPtr($input,(void **) &p,
  301. $1_descriptor, 0) != -1)
  302. $1 = 1;
  303. else
  304. $1 = 0;
  305. }
  306. }
  307. pair();
  308. pair(T first, U second);
  309. pair(const pair& p);
  310. template <class U1, class U2> pair(const pair<U1, U2> &p);
  311. T first;
  312. U second;
  313. };
  314. %enddef
  315. %define specialize_std_pair_on_both(T,CHECK_T,CONVERT_T_FROM,CONVERT_T_TO,
  316. U,CHECK_U,CONVERT_U_FROM,CONVERT_U_TO)
  317. template<> struct pair<T,U> {
  318. %typemap(in) pair<T,U> (std::pair<T,U>* m) {
  319. if (SCHEME_PAIRP($input)) {
  320. Scheme_Object *first, *second;
  321. first = scheme_car($input);
  322. second = scheme_cdr($input);
  323. if (!CHECK_T(first) || !CHECK_U(second))
  324. SWIG_exception(SWIG_TypeError,
  325. "pair<" #T "," #U "> expected");
  326. $1 = make_pair(CONVERT_T_FROM(first),
  327. CONVERT_U_FROM(second));
  328. } else {
  329. $1 = *(($&1_type)
  330. SWIG_MustGetPtr($input,$&1_descriptor,$argnum, 0));
  331. }
  332. }
  333. %typemap(in) const pair<T,U>& (std::pair<T,U> temp,
  334. std::pair<T,U>* m),
  335. const pair<T,U>* (std::pair<T,U> temp,
  336. std::pair<T,U>* m) {
  337. if (SCHEME_PAIRP($input)) {
  338. Scheme_Object *first, *second;
  339. T *x;
  340. first = scheme_car($input);
  341. second = scheme_cdr($input);
  342. x = (T*) SWIG_MustGetPtr(first,$descriptor(T *),$argnum, 0);
  343. if (!CHECK_T(first) || !CHECK_U(second))
  344. SWIG_exception(SWIG_TypeError,
  345. "pair<" #T "," #U "> expected");
  346. temp = make_pair(CONVERT_T_FROM(first),
  347. CONVERT_U_FROM(second));
  348. $1 = &temp;
  349. } else {
  350. $1 = ($1_ltype)
  351. SWIG_MustGetPtr($input,$1_descriptor,$argnum, 0);
  352. }
  353. }
  354. %typemap(out) pair<T,U> {
  355. $result = scheme_make_pair(CONVERT_T_TO($1.first),
  356. CONVERT_U_TO($1.second));
  357. }
  358. %typecheck(SWIG_TYPECHECK_PAIR) pair<T,U> {
  359. /* native pair? */
  360. if (SCHEME_PAIRP($input)) {
  361. Scheme_Object* first = scheme_car($input);
  362. Scheme_Object* second = scheme_cdr($input);
  363. if (CHECK_T(first) && CHECK_U(second)) {
  364. $1 = 1;
  365. } else {
  366. $1 = 0;
  367. }
  368. } else {
  369. /* wrapped pair? */
  370. std::pair<T,U >* p;
  371. if (SWIG_ConvertPtr($input,(void **) &p,
  372. $&1_descriptor, 0) != -1)
  373. $1 = 1;
  374. else
  375. $1 = 0;
  376. }
  377. }
  378. %typecheck(SWIG_TYPECHECK_PAIR) const pair<T,U>&,
  379. const pair<T,U>* {
  380. /* native pair? */
  381. if (SCHEME_PAIRP($input)) {
  382. Scheme_Object* first = scheme_car($input);
  383. Scheme_Object* second = scheme_cdr($input);
  384. if (CHECK_T(first) && CHECK_U(second)) {
  385. $1 = 1;
  386. } else {
  387. $1 = 0;
  388. }
  389. } else {
  390. /* wrapped pair? */
  391. std::pair<T,U >* p;
  392. if (SWIG_ConvertPtr($input,(void **) &p,
  393. $1_descriptor, 0) != -1)
  394. $1 = 1;
  395. else
  396. $1 = 0;
  397. }
  398. }
  399. pair();
  400. pair(T first, U second);
  401. pair(const pair& p);
  402. template <class U1, class U2> pair(const pair<U1, U2> &p);
  403. T first;
  404. U second;
  405. };
  406. %enddef
  407. specialize_std_pair_on_first(bool,SCHEME_BOOLP,
  408. SCHEME_TRUEP,swig_make_boolean);
  409. specialize_std_pair_on_first(int,SCHEME_INTP,
  410. SCHEME_INT_VAL,scheme_make_integer_value);
  411. specialize_std_pair_on_first(short,SCHEME_INTP,
  412. SCHEME_INT_VAL,scheme_make_integer_value);
  413. specialize_std_pair_on_first(long,SCHEME_INTP,
  414. SCHEME_INT_VAL,scheme_make_integer_value);
  415. specialize_std_pair_on_first(unsigned int,SCHEME_INTP,
  416. SCHEME_INT_VAL,scheme_make_integer_value);
  417. specialize_std_pair_on_first(unsigned short,SCHEME_INTP,
  418. SCHEME_INT_VAL,scheme_make_integer_value);
  419. specialize_std_pair_on_first(unsigned long,SCHEME_INTP,
  420. SCHEME_INT_VAL,scheme_make_integer_value);
  421. specialize_std_pair_on_first(double,SCHEME_REALP,
  422. scheme_real_to_double,scheme_make_double);
  423. specialize_std_pair_on_first(float,SCHEME_REALP,
  424. scheme_real_to_double,scheme_make_double);
  425. specialize_std_pair_on_first(std::string,SCHEME_STRINGP,
  426. swig_scm_to_string,swig_make_string);
  427. specialize_std_pair_on_second(bool,SCHEME_BOOLP,
  428. SCHEME_TRUEP,swig_make_boolean);
  429. specialize_std_pair_on_second(int,SCHEME_INTP,
  430. SCHEME_INT_VAL,scheme_make_integer_value);
  431. specialize_std_pair_on_second(short,SCHEME_INTP,
  432. SCHEME_INT_VAL,scheme_make_integer_value);
  433. specialize_std_pair_on_second(long,SCHEME_INTP,
  434. SCHEME_INT_VAL,scheme_make_integer_value);
  435. specialize_std_pair_on_second(unsigned int,SCHEME_INTP,
  436. SCHEME_INT_VAL,scheme_make_integer_value);
  437. specialize_std_pair_on_second(unsigned short,SCHEME_INTP,
  438. SCHEME_INT_VAL,scheme_make_integer_value);
  439. specialize_std_pair_on_second(unsigned long,SCHEME_INTP,
  440. SCHEME_INT_VAL,scheme_make_integer_value);
  441. specialize_std_pair_on_second(double,SCHEME_REALP,
  442. scheme_real_to_double,scheme_make_double);
  443. specialize_std_pair_on_second(float,SCHEME_REALP,
  444. scheme_real_to_double,scheme_make_double);
  445. specialize_std_pair_on_second(std::string,SCHEME_STRINGP,
  446. swig_scm_to_string,swig_make_string);
  447. specialize_std_pair_on_both(bool,SCHEME_BOOLP,
  448. SCHEME_TRUEP,swig_make_boolean,
  449. bool,SCHEME_BOOLP,
  450. SCHEME_TRUEP,swig_make_boolean);
  451. specialize_std_pair_on_both(bool,SCHEME_BOOLP,
  452. SCHEME_TRUEP,swig_make_boolean,
  453. int,SCHEME_INTP,
  454. SCHEME_INT_VAL,scheme_make_integer_value);
  455. specialize_std_pair_on_both(bool,SCHEME_BOOLP,
  456. SCHEME_TRUEP,swig_make_boolean,
  457. short,SCHEME_INTP,
  458. SCHEME_INT_VAL,scheme_make_integer_value);
  459. specialize_std_pair_on_both(bool,SCHEME_BOOLP,
  460. SCHEME_TRUEP,swig_make_boolean,
  461. long,SCHEME_INTP,
  462. SCHEME_INT_VAL,scheme_make_integer_value);
  463. specialize_std_pair_on_both(bool,SCHEME_BOOLP,
  464. SCHEME_TRUEP,swig_make_boolean,
  465. unsigned int,SCHEME_INTP,
  466. SCHEME_INT_VAL,scheme_make_integer_value);
  467. specialize_std_pair_on_both(bool,SCHEME_BOOLP,
  468. SCHEME_TRUEP,swig_make_boolean,
  469. unsigned short,SCHEME_INTP,
  470. SCHEME_INT_VAL,scheme_make_integer_value);
  471. specialize_std_pair_on_both(bool,SCHEME_BOOLP,
  472. SCHEME_TRUEP,swig_make_boolean,
  473. unsigned long,SCHEME_INTP,
  474. SCHEME_INT_VAL,scheme_make_integer_value);
  475. specialize_std_pair_on_both(bool,SCHEME_BOOLP,
  476. SCHEME_TRUEP,swig_make_boolean,
  477. double,SCHEME_REALP,
  478. scheme_real_to_double,scheme_make_double);
  479. specialize_std_pair_on_both(bool,SCHEME_BOOLP,
  480. SCHEME_TRUEP,swig_make_boolean,
  481. float,SCHEME_REALP,
  482. scheme_real_to_double,scheme_make_double);
  483. specialize_std_pair_on_both(bool,SCHEME_BOOLP,
  484. SCHEME_TRUEP,swig_make_boolean,
  485. std::string,SCHEME_STRINGP,
  486. swig_scm_to_string,swig_make_string);
  487. specialize_std_pair_on_both(int,SCHEME_INTP,
  488. SCHEME_INT_VAL,scheme_make_integer_value,
  489. bool,SCHEME_BOOLP,
  490. SCHEME_TRUEP,swig_make_boolean);
  491. specialize_std_pair_on_both(int,SCHEME_INTP,
  492. SCHEME_INT_VAL,scheme_make_integer_value,
  493. int,SCHEME_INTP,
  494. SCHEME_INT_VAL,scheme_make_integer_value);
  495. specialize_std_pair_on_both(int,SCHEME_INTP,
  496. SCHEME_INT_VAL,scheme_make_integer_value,
  497. short,SCHEME_INTP,
  498. SCHEME_INT_VAL,scheme_make_integer_value);
  499. specialize_std_pair_on_both(int,SCHEME_INTP,
  500. SCHEME_INT_VAL,scheme_make_integer_value,
  501. long,SCHEME_INTP,
  502. SCHEME_INT_VAL,scheme_make_integer_value);
  503. specialize_std_pair_on_both(int,SCHEME_INTP,
  504. SCHEME_INT_VAL,scheme_make_integer_value,
  505. unsigned int,SCHEME_INTP,
  506. SCHEME_INT_VAL,scheme_make_integer_value);
  507. specialize_std_pair_on_both(int,SCHEME_INTP,
  508. SCHEME_INT_VAL,scheme_make_integer_value,
  509. unsigned short,SCHEME_INTP,
  510. SCHEME_INT_VAL,scheme_make_integer_value);
  511. specialize_std_pair_on_both(int,SCHEME_INTP,
  512. SCHEME_INT_VAL,scheme_make_integer_value,
  513. unsigned long,SCHEME_INTP,
  514. SCHEME_INT_VAL,scheme_make_integer_value);
  515. specialize_std_pair_on_both(int,SCHEME_INTP,
  516. SCHEME_INT_VAL,scheme_make_integer_value,
  517. double,SCHEME_REALP,
  518. scheme_real_to_double,scheme_make_double);
  519. specialize_std_pair_on_both(int,SCHEME_INTP,
  520. SCHEME_INT_VAL,scheme_make_integer_value,
  521. float,SCHEME_REALP,
  522. scheme_real_to_double,scheme_make_double);
  523. specialize_std_pair_on_both(int,SCHEME_INTP,
  524. SCHEME_INT_VAL,scheme_make_integer_value,
  525. std::string,SCHEME_STRINGP,
  526. swig_scm_to_string,swig_make_string);
  527. specialize_std_pair_on_both(short,SCHEME_INTP,
  528. SCHEME_INT_VAL,scheme_make_integer_value,
  529. bool,SCHEME_BOOLP,
  530. SCHEME_TRUEP,swig_make_boolean);
  531. specialize_std_pair_on_both(short,SCHEME_INTP,
  532. SCHEME_INT_VAL,scheme_make_integer_value,
  533. int,SCHEME_INTP,
  534. SCHEME_INT_VAL,scheme_make_integer_value);
  535. specialize_std_pair_on_both(short,SCHEME_INTP,
  536. SCHEME_INT_VAL,scheme_make_integer_value,
  537. short,SCHEME_INTP,
  538. SCHEME_INT_VAL,scheme_make_integer_value);
  539. specialize_std_pair_on_both(short,SCHEME_INTP,
  540. SCHEME_INT_VAL,scheme_make_integer_value,
  541. long,SCHEME_INTP,
  542. SCHEME_INT_VAL,scheme_make_integer_value);
  543. specialize_std_pair_on_both(short,SCHEME_INTP,
  544. SCHEME_INT_VAL,scheme_make_integer_value,
  545. unsigned int,SCHEME_INTP,
  546. SCHEME_INT_VAL,scheme_make_integer_value);
  547. specialize_std_pair_on_both(short,SCHEME_INTP,
  548. SCHEME_INT_VAL,scheme_make_integer_value,
  549. unsigned short,SCHEME_INTP,
  550. SCHEME_INT_VAL,scheme_make_integer_value);
  551. specialize_std_pair_on_both(short,SCHEME_INTP,
  552. SCHEME_INT_VAL,scheme_make_integer_value,
  553. unsigned long,SCHEME_INTP,
  554. SCHEME_INT_VAL,scheme_make_integer_value);
  555. specialize_std_pair_on_both(short,SCHEME_INTP,
  556. SCHEME_INT_VAL,scheme_make_integer_value,
  557. double,SCHEME_REALP,
  558. scheme_real_to_double,scheme_make_double);
  559. specialize_std_pair_on_both(short,SCHEME_INTP,
  560. SCHEME_INT_VAL,scheme_make_integer_value,
  561. float,SCHEME_REALP,
  562. scheme_real_to_double,scheme_make_double);
  563. specialize_std_pair_on_both(short,SCHEME_INTP,
  564. SCHEME_INT_VAL,scheme_make_integer_value,
  565. std::string,SCHEME_STRINGP,
  566. swig_scm_to_string,swig_make_string);
  567. specialize_std_pair_on_both(long,SCHEME_INTP,
  568. SCHEME_INT_VAL,scheme_make_integer_value,
  569. bool,SCHEME_BOOLP,
  570. SCHEME_TRUEP,swig_make_boolean);
  571. specialize_std_pair_on_both(long,SCHEME_INTP,
  572. SCHEME_INT_VAL,scheme_make_integer_value,
  573. int,SCHEME_INTP,
  574. SCHEME_INT_VAL,scheme_make_integer_value);
  575. specialize_std_pair_on_both(long,SCHEME_INTP,
  576. SCHEME_INT_VAL,scheme_make_integer_value,
  577. short,SCHEME_INTP,
  578. SCHEME_INT_VAL,scheme_make_integer_value);
  579. specialize_std_pair_on_both(long,SCHEME_INTP,
  580. SCHEME_INT_VAL,scheme_make_integer_value,
  581. long,SCHEME_INTP,
  582. SCHEME_INT_VAL,scheme_make_integer_value);
  583. specialize_std_pair_on_both(long,SCHEME_INTP,
  584. SCHEME_INT_VAL,scheme_make_integer_value,
  585. unsigned int,SCHEME_INTP,
  586. SCHEME_INT_VAL,scheme_make_integer_value);
  587. specialize_std_pair_on_both(long,SCHEME_INTP,
  588. SCHEME_INT_VAL,scheme_make_integer_value,
  589. unsigned short,SCHEME_INTP,
  590. SCHEME_INT_VAL,scheme_make_integer_value);
  591. specialize_std_pair_on_both(long,SCHEME_INTP,
  592. SCHEME_INT_VAL,scheme_make_integer_value,
  593. unsigned long,SCHEME_INTP,
  594. SCHEME_INT_VAL,scheme_make_integer_value);
  595. specialize_std_pair_on_both(long,SCHEME_INTP,
  596. SCHEME_INT_VAL,scheme_make_integer_value,
  597. double,SCHEME_REALP,
  598. scheme_real_to_double,scheme_make_double);
  599. specialize_std_pair_on_both(long,SCHEME_INTP,
  600. SCHEME_INT_VAL,scheme_make_integer_value,
  601. float,SCHEME_REALP,
  602. scheme_real_to_double,scheme_make_double);
  603. specialize_std_pair_on_both(long,SCHEME_INTP,
  604. SCHEME_INT_VAL,scheme_make_integer_value,
  605. std::string,SCHEME_STRINGP,
  606. swig_scm_to_string,swig_make_string);
  607. specialize_std_pair_on_both(unsigned int,SCHEME_INTP,
  608. SCHEME_INT_VAL,scheme_make_integer_value,
  609. bool,SCHEME_BOOLP,
  610. SCHEME_TRUEP,swig_make_boolean);
  611. specialize_std_pair_on_both(unsigned int,SCHEME_INTP,
  612. SCHEME_INT_VAL,scheme_make_integer_value,
  613. int,SCHEME_INTP,
  614. SCHEME_INT_VAL,scheme_make_integer_value);
  615. specialize_std_pair_on_both(unsigned int,SCHEME_INTP,
  616. SCHEME_INT_VAL,scheme_make_integer_value,
  617. short,SCHEME_INTP,
  618. SCHEME_INT_VAL,scheme_make_integer_value);
  619. specialize_std_pair_on_both(unsigned int,SCHEME_INTP,
  620. SCHEME_INT_VAL,scheme_make_integer_value,
  621. long,SCHEME_INTP,
  622. SCHEME_INT_VAL,scheme_make_integer_value);
  623. specialize_std_pair_on_both(unsigned int,SCHEME_INTP,
  624. SCHEME_INT_VAL,scheme_make_integer_value,
  625. unsigned int,SCHEME_INTP,
  626. SCHEME_INT_VAL,scheme_make_integer_value);
  627. specialize_std_pair_on_both(unsigned int,SCHEME_INTP,
  628. SCHEME_INT_VAL,scheme_make_integer_value,
  629. unsigned short,SCHEME_INTP,
  630. SCHEME_INT_VAL,scheme_make_integer_value);
  631. specialize_std_pair_on_both(unsigned int,SCHEME_INTP,
  632. SCHEME_INT_VAL,scheme_make_integer_value,
  633. unsigned long,SCHEME_INTP,
  634. SCHEME_INT_VAL,scheme_make_integer_value);
  635. specialize_std_pair_on_both(unsigned int,SCHEME_INTP,
  636. SCHEME_INT_VAL,scheme_make_integer_value,
  637. double,SCHEME_REALP,
  638. scheme_real_to_double,scheme_make_double);
  639. specialize_std_pair_on_both(unsigned int,SCHEME_INTP,
  640. SCHEME_INT_VAL,scheme_make_integer_value,
  641. float,SCHEME_REALP,
  642. scheme_real_to_double,scheme_make_double);
  643. specialize_std_pair_on_both(unsigned int,SCHEME_INTP,
  644. SCHEME_INT_VAL,scheme_make_integer_value,
  645. std::string,SCHEME_STRINGP,
  646. swig_scm_to_string,swig_make_string);
  647. specialize_std_pair_on_both(unsigned short,SCHEME_INTP,
  648. SCHEME_INT_VAL,scheme_make_integer_value,
  649. bool,SCHEME_BOOLP,
  650. SCHEME_TRUEP,swig_make_boolean);
  651. specialize_std_pair_on_both(unsigned short,SCHEME_INTP,
  652. SCHEME_INT_VAL,scheme_make_integer_value,
  653. int,SCHEME_INTP,
  654. SCHEME_INT_VAL,scheme_make_integer_value);
  655. specialize_std_pair_on_both(unsigned short,SCHEME_INTP,
  656. SCHEME_INT_VAL,scheme_make_integer_value,
  657. short,SCHEME_INTP,
  658. SCHEME_INT_VAL,scheme_make_integer_value);
  659. specialize_std_pair_on_both(unsigned short,SCHEME_INTP,
  660. SCHEME_INT_VAL,scheme_make_integer_value,
  661. long,SCHEME_INTP,
  662. SCHEME_INT_VAL,scheme_make_integer_value);
  663. specialize_std_pair_on_both(unsigned short,SCHEME_INTP,
  664. SCHEME_INT_VAL,scheme_make_integer_value,
  665. unsigned int,SCHEME_INTP,
  666. SCHEME_INT_VAL,scheme_make_integer_value);
  667. specialize_std_pair_on_both(unsigned short,SCHEME_INTP,
  668. SCHEME_INT_VAL,scheme_make_integer_value,
  669. unsigned short,SCHEME_INTP,
  670. SCHEME_INT_VAL,scheme_make_integer_value);
  671. specialize_std_pair_on_both(unsigned short,SCHEME_INTP,
  672. SCHEME_INT_VAL,scheme_make_integer_value,
  673. unsigned long,SCHEME_INTP,
  674. SCHEME_INT_VAL,scheme_make_integer_value);
  675. specialize_std_pair_on_both(unsigned short,SCHEME_INTP,
  676. SCHEME_INT_VAL,scheme_make_integer_value,
  677. double,SCHEME_REALP,
  678. scheme_real_to_double,scheme_make_double);
  679. specialize_std_pair_on_both(unsigned short,SCHEME_INTP,
  680. SCHEME_INT_VAL,scheme_make_integer_value,
  681. float,SCHEME_REALP,
  682. scheme_real_to_double,scheme_make_double);
  683. specialize_std_pair_on_both(unsigned short,SCHEME_INTP,
  684. SCHEME_INT_VAL,scheme_make_integer_value,
  685. std::string,SCHEME_STRINGP,
  686. swig_scm_to_string,swig_make_string);
  687. specialize_std_pair_on_both(unsigned long,SCHEME_INTP,
  688. SCHEME_INT_VAL,scheme_make_integer_value,
  689. bool,SCHEME_BOOLP,
  690. SCHEME_TRUEP,swig_make_boolean);
  691. specialize_std_pair_on_both(unsigned long,SCHEME_INTP,
  692. SCHEME_INT_VAL,scheme_make_integer_value,
  693. int,SCHEME_INTP,
  694. SCHEME_INT_VAL,scheme_make_integer_value);
  695. specialize_std_pair_on_both(unsigned long,SCHEME_INTP,
  696. SCHEME_INT_VAL,scheme_make_integer_value,
  697. short,SCHEME_INTP,
  698. SCHEME_INT_VAL,scheme_make_integer_value);
  699. specialize_std_pair_on_both(unsigned long,SCHEME_INTP,
  700. SCHEME_INT_VAL,scheme_make_integer_value,
  701. long,SCHEME_INTP,
  702. SCHEME_INT_VAL,scheme_make_integer_value);
  703. specialize_std_pair_on_both(unsigned long,SCHEME_INTP,
  704. SCHEME_INT_VAL,scheme_make_integer_value,
  705. unsigned int,SCHEME_INTP,
  706. SCHEME_INT_VAL,scheme_make_integer_value);
  707. specialize_std_pair_on_both(unsigned long,SCHEME_INTP,
  708. SCHEME_INT_VAL,scheme_make_integer_value,
  709. unsigned short,SCHEME_INTP,
  710. SCHEME_INT_VAL,scheme_make_integer_value);
  711. specialize_std_pair_on_both(unsigned long,SCHEME_INTP,
  712. SCHEME_INT_VAL,scheme_make_integer_value,
  713. unsigned long,SCHEME_INTP,
  714. SCHEME_INT_VAL,scheme_make_integer_value);
  715. specialize_std_pair_on_both(unsigned long,SCHEME_INTP,
  716. SCHEME_INT_VAL,scheme_make_integer_value,
  717. double,SCHEME_REALP,
  718. scheme_real_to_double,scheme_make_double);
  719. specialize_std_pair_on_both(unsigned long,SCHEME_INTP,
  720. SCHEME_INT_VAL,scheme_make_integer_value,
  721. float,SCHEME_REALP,
  722. scheme_real_to_double,scheme_make_double);
  723. specialize_std_pair_on_both(unsigned long,SCHEME_INTP,
  724. SCHEME_INT_VAL,scheme_make_integer_value,
  725. std::string,SCHEME_STRINGP,
  726. swig_scm_to_string,swig_make_string);
  727. specialize_std_pair_on_both(double,SCHEME_REALP,
  728. scheme_real_to_double,scheme_make_double,
  729. bool,SCHEME_BOOLP,
  730. SCHEME_TRUEP,swig_make_boolean);
  731. specialize_std_pair_on_both(double,SCHEME_REALP,
  732. scheme_real_to_double,scheme_make_double,
  733. int,SCHEME_INTP,
  734. SCHEME_INT_VAL,scheme_make_integer_value);
  735. specialize_std_pair_on_both(double,SCHEME_REALP,
  736. scheme_real_to_double,scheme_make_double,
  737. short,SCHEME_INTP,
  738. SCHEME_INT_VAL,scheme_make_integer_value);
  739. specialize_std_pair_on_both(double,SCHEME_REALP,
  740. scheme_real_to_double,scheme_make_double,
  741. long,SCHEME_INTP,
  742. SCHEME_INT_VAL,scheme_make_integer_value);
  743. specialize_std_pair_on_both(double,SCHEME_REALP,
  744. scheme_real_to_double,scheme_make_double,
  745. unsigned int,SCHEME_INTP,
  746. SCHEME_INT_VAL,scheme_make_integer_value);
  747. specialize_std_pair_on_both(double,SCHEME_REALP,
  748. scheme_real_to_double,scheme_make_double,
  749. unsigned short,SCHEME_INTP,
  750. SCHEME_INT_VAL,scheme_make_integer_value);
  751. specialize_std_pair_on_both(double,SCHEME_REALP,
  752. scheme_real_to_double,scheme_make_double,
  753. unsigned long,SCHEME_INTP,
  754. SCHEME_INT_VAL,scheme_make_integer_value);
  755. specialize_std_pair_on_both(double,SCHEME_REALP,
  756. scheme_real_to_double,scheme_make_double,
  757. double,SCHEME_REALP,
  758. scheme_real_to_double,scheme_make_double);
  759. specialize_std_pair_on_both(double,SCHEME_REALP,
  760. scheme_real_to_double,scheme_make_double,
  761. float,SCHEME_REALP,
  762. scheme_real_to_double,scheme_make_double);
  763. specialize_std_pair_on_both(double,SCHEME_REALP,
  764. scheme_real_to_double,scheme_make_double,
  765. std::string,SCHEME_STRINGP,
  766. swig_scm_to_string,swig_make_string);
  767. specialize_std_pair_on_both(float,SCHEME_REALP,
  768. scheme_real_to_double,scheme_make_double,
  769. bool,SCHEME_BOOLP,
  770. SCHEME_TRUEP,swig_make_boolean);
  771. specialize_std_pair_on_both(float,SCHEME_REALP,
  772. scheme_real_to_double,scheme_make_double,
  773. int,SCHEME_INTP,
  774. SCHEME_INT_VAL,scheme_make_integer_value);
  775. specialize_std_pair_on_both(float,SCHEME_REALP,
  776. scheme_real_to_double,scheme_make_double,
  777. short,SCHEME_INTP,
  778. SCHEME_INT_VAL,scheme_make_integer_value);
  779. specialize_std_pair_on_both(float,SCHEME_REALP,
  780. scheme_real_to_double,scheme_make_double,
  781. long,SCHEME_INTP,
  782. SCHEME_INT_VAL,scheme_make_integer_value);
  783. specialize_std_pair_on_both(float,SCHEME_REALP,
  784. scheme_real_to_double,scheme_make_double,
  785. unsigned int,SCHEME_INTP,
  786. SCHEME_INT_VAL,scheme_make_integer_value);
  787. specialize_std_pair_on_both(float,SCHEME_REALP,
  788. scheme_real_to_double,scheme_make_double,
  789. unsigned short,SCHEME_INTP,
  790. SCHEME_INT_VAL,scheme_make_integer_value);
  791. specialize_std_pair_on_both(float,SCHEME_REALP,
  792. scheme_real_to_double,scheme_make_double,
  793. unsigned long,SCHEME_INTP,
  794. SCHEME_INT_VAL,scheme_make_integer_value);
  795. specialize_std_pair_on_both(float,SCHEME_REALP,
  796. scheme_real_to_double,scheme_make_double,
  797. double,SCHEME_REALP,
  798. scheme_real_to_double,scheme_make_double);
  799. specialize_std_pair_on_both(float,SCHEME_REALP,
  800. scheme_real_to_double,scheme_make_double,
  801. float,SCHEME_REALP,
  802. scheme_real_to_double,scheme_make_double);
  803. specialize_std_pair_on_both(float,SCHEME_REALP,
  804. scheme_real_to_double,scheme_make_double,
  805. std::string,SCHEME_STRINGP,
  806. swig_scm_to_string,swig_make_string);
  807. specialize_std_pair_on_both(std::string,SCHEME_STRINGP,
  808. swig_scm_to_string,swig_make_string,
  809. bool,SCHEME_BOOLP,
  810. SCHEME_TRUEP,swig_make_boolean);
  811. specialize_std_pair_on_both(std::string,SCHEME_STRINGP,
  812. swig_scm_to_string,swig_make_string,
  813. int,SCHEME_INTP,
  814. SCHEME_INT_VAL,scheme_make_integer_value);
  815. specialize_std_pair_on_both(std::string,SCHEME_STRINGP,
  816. swig_scm_to_string,swig_make_string,
  817. short,SCHEME_INTP,
  818. SCHEME_INT_VAL,scheme_make_integer_value);
  819. specialize_std_pair_on_both(std::string,SCHEME_STRINGP,
  820. swig_scm_to_string,swig_make_string,
  821. long,SCHEME_INTP,
  822. SCHEME_INT_VAL,scheme_make_integer_value);
  823. specialize_std_pair_on_both(std::string,SCHEME_STRINGP,
  824. swig_scm_to_string,swig_make_string,
  825. unsigned int,SCHEME_INTP,
  826. SCHEME_INT_VAL,scheme_make_integer_value);
  827. specialize_std_pair_on_both(std::string,SCHEME_STRINGP,
  828. swig_scm_to_string,swig_make_string,
  829. unsigned short,SCHEME_INTP,
  830. SCHEME_INT_VAL,scheme_make_integer_value);
  831. specialize_std_pair_on_both(std::string,SCHEME_STRINGP,
  832. swig_scm_to_string,swig_make_string,
  833. unsigned long,SCHEME_INTP,
  834. SCHEME_INT_VAL,scheme_make_integer_value);
  835. specialize_std_pair_on_both(std::string,SCHEME_STRINGP,
  836. swig_scm_to_string,swig_make_string,
  837. double,SCHEME_REALP,
  838. scheme_real_to_double,scheme_make_double);
  839. specialize_std_pair_on_both(std::string,SCHEME_STRINGP,
  840. swig_scm_to_string,swig_make_string,
  841. float,SCHEME_REALP,
  842. scheme_real_to_double,scheme_make_double);
  843. specialize_std_pair_on_both(std::string,SCHEME_STRINGP,
  844. swig_scm_to_string,swig_make_string,
  845. std::string,SCHEME_STRINGP,
  846. swig_scm_to_string,swig_make_string);
  847. }