aboutsummaryrefslogtreecommitdiff
path: root/tests/loop/for.testscript
blob: 184c9ce8ca0ec5013a1ef9d96fe673be28229d94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# file      : tests/loop/for.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license   : MIT; see accompanying LICENSE file

# Test for-loop.

.include ../common.testscript

: line
:
$* <<EOI >>EOO
for i: 1 2 3
  print $i
EOI
1
2
3
EOO

: block
:
$* <<EOI >>EOO
for i: 1 2 3
{
  # This is a block if you haven't noticed.
  j = $i
  print $j
}
EOI
1
2
3
EOO

: empty
:
$* <<EOI
i = x
nums =
for i: $nums
  print $i
assert ($i == x)
EOI

: nested
:
$* <<EOI >>EOO
for i: 1 2 3
{
  for j: + -
  {
    print $j$i
  }
}
EOI
+1
-1
+2
-2
+3
-3
EOO

: diag-line
:
$* <<EOI 2>>EOE != 0
for i: true false
{
  assert $i
}
EOI
<stdin>:3:3: error: assertion failed
EOE

: var-attribute
:
$* <<EOI >>EOO
for [uint64] i: 0 1 2
{
  i += 1
  print $i
}
EOI
1
2
3
EOO

: val-attribute
:
$* <<EOI >>EOO
for i: [uint64s] 0 1 2
{
  i += 1
  print $i
}
EOI
1
2
3
EOO

: val-null
:
$* <<EOI
for i: [null]
  print $i
EOI

: pairs
:
$* <<EOI >>EOO
for i: a@1 b@2 c@3
  print $i
EOI
a@1
b@2
c@3
EOO