mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-23 21:33:49 +00:00
161 lines
4.0 KiB
Mathematica
161 lines
4.0 KiB
Mathematica
%---------------------------------------------------------------------------%
|
|
% vim: ft=mercury ts=4 sw=4 et
|
|
%---------------------------------------------------------------------------%
|
|
|
|
:- module test_repn.
|
|
:- interface.
|
|
|
|
:- import_module test_repn_helper_1.
|
|
|
|
:- import_module char.
|
|
|
|
:- type only_functor_local1
|
|
---> ofl1_f1(
|
|
animal, d, int8, animal, uint32, animal
|
|
).
|
|
|
|
:- type only_functor_local2
|
|
---> ofl2_f1(
|
|
nt(d), animal, int8, uint16
|
|
).
|
|
|
|
:- type only_functor_remote1
|
|
---> ofr1_f1( % on 64 bit machines
|
|
animal, animal, d, % word 0
|
|
int, % word 1
|
|
string, % word 2
|
|
animal, int8, animal, uint32, animal % word 3
|
|
).
|
|
|
|
:- type only_functor_remote2
|
|
---> ofr2_f1( % on 64 bit machines
|
|
d, nt(animal), d, animal, d, % word 0
|
|
int, % word 1
|
|
string, % word 2
|
|
animal, int8, animal, uint32, animal % word 3
|
|
).
|
|
|
|
:- type more_functors_local1
|
|
---> mfl1_f1(
|
|
animal, int8, animal, uint32, animal
|
|
)
|
|
; mfl1_f2(
|
|
animal, animal
|
|
).
|
|
|
|
:- type more_functors_local2
|
|
---> mfl2_f1
|
|
; mfl2_f2
|
|
; mfl2_f3
|
|
; mfl2_f4(
|
|
animal, int8, animal, uint32, animal
|
|
)
|
|
; mfl2_f5(
|
|
animal, animal
|
|
).
|
|
|
|
:- type more_functors_remote1
|
|
---> mfr1_f1
|
|
; mfr1_f2
|
|
; mfr1_f3
|
|
; mfr1_f4(
|
|
int, int
|
|
)
|
|
; mfr1_f5(
|
|
int, float
|
|
).
|
|
|
|
:- type more_functors_local_remote1
|
|
---> mflr1_f1
|
|
; mflr1_f2
|
|
; mflr1_f3
|
|
; mflr1_f4(
|
|
char, animal
|
|
)
|
|
; mflr1_f5(
|
|
int, int
|
|
).
|
|
|
|
:- type more_functors_local_remote2
|
|
---> mflr2_f1
|
|
; mflr2_f2
|
|
; mflr2_f3
|
|
; mflr2_f4(
|
|
char, animal
|
|
)
|
|
; mflr2_f5(
|
|
float, int, float
|
|
).
|
|
|
|
:- type more_functors_local_remote3
|
|
---> mflr3_f1
|
|
; mflr3_f2
|
|
; mflr3_f3(
|
|
char, animal
|
|
)
|
|
; some [A, B] mflr3_f4(
|
|
int8, animal, d, A, B, float, int, float
|
|
)
|
|
; mflr3_f5(
|
|
int, int
|
|
)
|
|
; mflr3_f6(
|
|
int, int
|
|
)
|
|
; mflr3_f7(
|
|
int, int
|
|
)
|
|
; mflr3_f8(
|
|
int, int
|
|
)
|
|
; mflr3_f9(
|
|
int, int
|
|
)
|
|
; mflr3_f10(
|
|
int, int
|
|
)
|
|
; some [C, D, E] mflr3_f11(
|
|
nt(d), animal, char, C, D, E, int, int
|
|
)
|
|
; mflr3_f12(
|
|
eqv(nt(eqv(d))), animal, char, int, int
|
|
)
|
|
; mflr3_f13(
|
|
animal, nt(d), char, int, int
|
|
)
|
|
; mflr3_f13(
|
|
animal, char, nt(nt(d)), int, int
|
|
).
|
|
|
|
:- type more_functors_local_remote_da1
|
|
---> mflrd1_f1
|
|
; mflrd1_f2
|
|
; mflrd1_f3
|
|
; mflrd1_f5(
|
|
wa
|
|
)
|
|
; mflrd1_f6(
|
|
wa
|
|
)
|
|
; mflrd1_f7(
|
|
wa
|
|
)
|
|
; mflrd1_f8(
|
|
wa
|
|
)
|
|
; mflrd1_f9(
|
|
wa
|
|
)
|
|
; mflrd1_f10(
|
|
wa
|
|
)
|
|
; mflrd1_f11(
|
|
int, int
|
|
).
|
|
|
|
:- type abs.
|
|
:- pragma foreign_type("C", abs, "void *",
|
|
[can_pass_as_mercury_type, word_aligned_pointer]).
|
|
:- pragma foreign_type("C#", abs, "object",
|
|
[can_pass_as_mercury_type]).
|