74 lines
1.4 KiB
Plaintext
74 lines
1.4 KiB
Plaintext
-- Need to test that list literals inside record literals are not collapsed.
|
|
-- Need to test that arrays of records work.
|
|
|
|
DATA TYPE ONE
|
|
RECORD
|
|
INT i:
|
|
:
|
|
DATA TYPE DIFF
|
|
RECORD
|
|
INT i:
|
|
BYTE b:
|
|
REAL32 r:
|
|
:
|
|
DATA TYPE SAME
|
|
RECORD
|
|
INT x:
|
|
INT y:
|
|
INT z:
|
|
:
|
|
DATA TYPE WITH.ARRAY
|
|
RECORD
|
|
INT x:
|
|
[4]INT xs:
|
|
:
|
|
DATA TYPE WITH.RECORD
|
|
RECORD
|
|
INT q:
|
|
WITH.ARRAY wa:
|
|
BOOL w:
|
|
:
|
|
PROC P ()
|
|
VAL INT x IS 42:
|
|
VAL ONE one IS [42]:
|
|
VAL DIFF diff IS [42, '**', 3.141]:
|
|
VAL SAME same IS [42, 43, 44]:
|
|
VAL WITH.ARRAY val.wa IS [99, [44, 33, 22, 11]]:
|
|
WITH.ARRAY wa:
|
|
VAL WITH.RECORD val.wr IS [123, val.wa, TRUE]:
|
|
WITH.RECORD wr:
|
|
SEQ
|
|
ASSERT (one[i] = 42)
|
|
ASSERT (diff[i] = 42)
|
|
ASSERT (diff[b] = 42)
|
|
ASSERT (diff[r] > 3.1)
|
|
ASSERT (diff[r] < 3.2)
|
|
ASSERT (same[x] = 42)
|
|
ASSERT (same[y] = 43)
|
|
ASSERT (same[z] = 44)
|
|
PROC check.wa (VAL WITH.ARRAY wa)
|
|
SEQ
|
|
ASSERT (wa[x] = 99)
|
|
ASSERT ((SIZE wa[xs]) = 4)
|
|
ASSERT (wa[xs][0] = 44)
|
|
ASSERT (wa[xs][1] = 33)
|
|
ASSERT (wa[xs][2] = 22)
|
|
ASSERT (wa[xs][3] = 11)
|
|
:
|
|
PROC check.wr (VAL WITH.RECORD wr)
|
|
SEQ
|
|
ASSERT (wr[q] = 123)
|
|
check.wa (wr[wa])
|
|
ASSERT (wr[w])
|
|
:
|
|
SEQ
|
|
check.wa (val.wa)
|
|
wa := val.wa
|
|
check.wa (wa)
|
|
check.wr (val.wr)
|
|
wr := val.wr
|
|
check.wr (wr)
|
|
wr[wa] := wa
|
|
check.wr (wr)
|
|
:
|