home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / historic / v941.tgz / icon.v941src.tar / icon.v941src / tests / general / substring.icn < prev    next >
Text File  |  2001-12-06  |  1KB  |  66 lines

  1. #SRC: JCON
  2.  
  3. # string subscripting test
  4.  
  5. procedure main()
  6.    local i, j, k, s, t
  7.  
  8.    s := "abcde"
  9.    t := "ABCDE"
  10.    write("A. ", !s)
  11.    every write("B. ", !s)
  12.    every i := 0 to 6 do write("C ", i, ". ", s[i] | "--")
  13.    every i := 0 to -6 by -1 do write("D ", i, ". ", s[i] | "--")
  14.    every i := -10 to 10 do write("E ", i, ". ", s[3:i] | "--")
  15.    every i := -10 to 5 do write("F ", i, ". ", s[3+:i] | "--") #some SHOULD fail
  16.    every i := -5 to 10 do write("G ", i, ". ", s[3-:i] | "--") #some SHOULD fail
  17.  
  18.    !s := "X"
  19.    write("H. ", s)
  20.    every !s := "Y"
  21.    write("I. ", s)
  22.  
  23.    every i := -6 to 6 do {
  24.       s := "abcde"
  25.       if s[i] := t[i] then
  26.          write("J ", i, ". ", s)
  27.       else
  28.          write("J ", i, ". --")
  29.       }
  30.  
  31.    every i := 1 to 6 do {
  32.       every j := 1 to 6 do {
  33.      s := "abcde"
  34.      writes("K ", i, " ", j, ". ")
  35.      if s[i:j] := "(*)" then
  36.         write(s)
  37.      else
  38.         write(s, " [failed]")
  39.          }
  40.       }
  41.  
  42.    every i := 1 to 6 do {
  43.       every j := 1 to 6 do {
  44.          every k := 1 to 6 do {
  45.         s := "abcde"
  46.         writes("L ", i, " ", j, " ", k, ". ")
  47.         if s[i:j][k:2] := "(*)" then
  48.            write(s)
  49.         else
  50.            write(s, " [failed]")
  51.         }
  52.          }
  53.       }
  54.  
  55.    s := "abcde"
  56.    every !s <- "-" do write("M ", s)
  57.    every s [1 to 5] <- "-" do write("N ", s)
  58.    every s [(-5 to 6) +: 0] <- "--" do write("O ", s)
  59.  
  60.    s := "abcde"
  61.    every s[2:4] := !"123" do write("P ", s)
  62.    s := "fghij"
  63.    every s[2:4] := !"456" do { write("Q ", s); s := "klmno" }
  64.    
  65. end
  66.