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
|
#SRC: JCON
# string subscripting test
procedure main()
local i, j, k, s, t
s := "abcde"
t := "ABCDE"
write("A. ", !s)
every write("B. ", !s)
every i := 0 to 6 do write("C ", i, ". ", s[i] | "--")
every i := 0 to -6 by -1 do write("D ", i, ". ", s[i] | "--")
every i := -10 to 10 do write("E ", i, ". ", s[3:i] | "--")
every i := -10 to 5 do write("F ", i, ". ", s[3+:i] | "--") #some SHOULD fail
every i := -5 to 10 do write("G ", i, ". ", s[3-:i] | "--") #some SHOULD fail
!s := "X"
write("H. ", s)
every !s := "Y"
write("I. ", s)
every i := -6 to 6 do {
s := "abcde"
if s[i] := t[i] then
write("J ", i, ". ", s)
else
write("J ", i, ". --")
}
every i := 1 to 6 do {
every j := 1 to 6 do {
s := "abcde"
writes("K ", i, " ", j, ". ")
if s[i:j] := "(*)" then
write(s)
else
write(s, " [failed]")
}
}
every i := 1 to 6 do {
every j := 1 to 6 do {
every k := 1 to 6 do {
s := "abcde"
writes("L ", i, " ", j, " ", k, ". ")
if s[i:j][k:2] := "(*)" then
write(s)
else
write(s, " [failed]")
}
}
}
s := "abcde"
every !s <- "-" do write("M ", s)
every s [1 to 5] <- "-" do write("N ", s)
every s [(-5 to 6) +: 0] <- "--" do write("O ", s)
s := "abcde"
every s[2:4] := !"123" do write("P ", s)
s := "fghij"
every s[2:4] := !"456" do { write("Q ", s); s := "klmno" }
end
|