blob: 5587291cef1cbb6a4e66dabcf4c5af88b1f701a7 (
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
# file : libbuild2/build/script/parser+while.test.testscript
# license : MIT; see accompanying LICENSE file
: while
:
{
: true
:
$* <<EOI >>EOO
while ($v != "aa")
cmd "$v"
v = "$(v)a"
end
EOI
? true
cmd ''
? true
cmd a
? false
EOO
: false
:
$* <<EOI >>EOO
while ($v == "aa")
cmd "$v"
v = "$(v)a"
end
EOI
? false
EOO
: without-command
:
$* <<EOI 2>>EOE != 0
while
cmd
end
EOI
buildfile:11:6: error: missing program
EOE
}
: end
:
{
: without-end
:
$* <<EOI 2>>EOE != 0
while true
cmd
EOI
buildfile:13:1: error: expected closing 'end'
EOE
}
: elif
:
{
: without-if
:
$* <<EOI 2>>EOE != 0
while false
elif true
cmd
end
end
EOI
buildfile:12:3: error: 'elif' without preceding 'if'
EOE
}
: nested
:
{
$* -l -r <<EOI >>EOO
while ($v != "aa") # 1
cmd1 "$v" # 2
if ($v == "a") # 3
cmd2 # 4
while ($v2 != "$v") # 5
cmd3 # 6
v2=$v
end
else
cmd4 # 7
end
cmd5 # 8
v = "$(v)a"
end
EOI
? true # 1 i1
cmd1 '' # 2 i1
? false # 3 i1
cmd4 # 7 i1
cmd5 # 8 i1
? true # 1 i2
cmd1 a # 2 i2
? true # 3 i2
cmd2 # 4 i2
? true # 5 i2 i1
cmd3 # 6 i2 i1
? false # 5 i2 i2
cmd5 # 8 i2
? false # 1 i3
EOO
}
: contained
:
{
: eos
:
$* <<EOI 2>>EOE != 0
while
EOI
buildfile:12:1: error: expected closing 'end'
EOE
}
: var
:
$* <<EOI >>EOO
while ($v1 != "a")
v1 = "$(v1)a"
v2 = "$v1"
end
cmd $v1
EOI
? true
? false
cmd a
EOO
|