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
|