This commit is contained in:
Scarlett
2025-04-02 11:54:13 -04:00
parent 53a4d060b6
commit d05b6f456c
2 changed files with 27 additions and 0 deletions

View File

@ -1,6 +1,7 @@
type rec: [integer: x; integer: y]
type T1: integer -> integer
type T2: rec -> integer
type arr : 1 -> integer
function foo : T1
function bar1 : T2
@ -23,5 +24,6 @@ entry(arg) := {
w.y := 7;
result := bar1(w); (* pass w (a rec type value) to bar1 *)
result := bar2(5,7); (* implicitly build a rec type value, assign 5 and 7 to fields x and y, but call them r and s *)
arr(3);
return 0;
}

View File

@ -0,0 +1,25 @@
type string: 1 -> character
type a_of_s: 1 -> string
(* maybe some other type definitions *)
entry(arg) := {
[ string: one_name; string: another_name; a_of_s: many_names ]
one_name := "a string literal";
another_name := reserve another_name(4); (* reserve space for an an array of character, with 4 members *)
another_name(0) := 'C';
another_name(1) := 'a';
another_name(2) := 'r';
another_name(3) := 'l';
a_of_s := reserve a_of_s(3);
a_of_s(0) := one_name;
a_of_s(1) := another_name;
many_names(2) := reserve many_names(2)(6); (* reserve space for an item of the same type as a_of_s(2), an array of character, with 6 members *)
many_names(2)(0) := "P";
many_names(2)(1) := "a";
many_names(2)(2) := "r";
many_names(2)(3) := "t";
many_names(2)(4) := "h";
many_names(2)(5) := "o";
return 0;
}