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 / scan1.icn < prev    next >
Text File  |  2001-12-06  |  3KB  |  85 lines

  1. #SRC: JCON
  2.  
  3. procedure main()
  4.    local skips, vowels, uppers
  5.  
  6.    write(any('ab', "1234ab", 0, 7) | "fail")
  7.    write(any('ab', "1234ab", 7, 0) | "fail")
  8.    write(any('ab', "1234ab", 6, 0) | "fail")
  9.    write(any('ab', "1234ab", 6) | "fail")
  10.    write(any('ab', "1234ab") | "fail")
  11.    "1234ab" ? write(any('ab', "1234ab") | "fail")
  12.    "1234ab" ? write(any('ab') | "fail")
  13.    "1234ab" ? { &pos := 6 & write(any('ab') | "fail") }
  14.    write()
  15.  
  16.    write(many('ab', "ababac") | "fail")
  17.    write(many('ab', "ababab") | "fail")
  18.    write(many('ab', "cababab") | "fail")
  19.    write()
  20.  
  21.    write(match("ab", "ababab") | "fail")
  22.    write(match("ab", "bbabab") | "fail")
  23.    write(match("ab", "ab") | "fail")
  24.    write(match("ab", "a") | "fail")
  25.    write()
  26.  
  27.    every write(find("ab", "ababab"|"ababa"|"ab"|"a"|"") | "done")
  28.    write()
  29.  
  30.    every write(upto('ab', "abccab"|"cbabc"|"ab"|"a"|"") | "done")
  31.    write()
  32.  
  33.    "123456" ? write(move(1), " ", move(2))
  34.    "123456" ? { write(move(1)); write(move(2)); write(move(3));
  35.         write(move(4)); write(move(-4))}
  36.    write()
  37.  
  38.    "123456" ? write(tab(1), " ", tab(2))
  39.    "123456" ? { write(tab(2)); write(tab(4)); write(tab(-1)); write(tab(0)); }
  40.    "123456" ? { write(tab(4)); write(tab(1)); write(tab(3)); }
  41.    write()
  42.  
  43.    every write("-35" ? bal('-'))
  44.    every write("((2*x)+3)+(5*y)" ? bal('+'))
  45.    every write("[+,[2,3]],[*,[5,10]]" ? bal(',', '[', ']'))
  46.    write()
  47.  
  48.    "12345" ? { write(pos(1)); write(pos(-5)); write(pos(3)|"fail"); }
  49.    write()
  50.  
  51.    "12345" ? { write(="123" | "fail") }
  52.    "12345" ? { tab(2); write(="123" | "fail") }
  53.    "12345" ? { tab(2); write(="23" | "fail") }
  54.  
  55.    # test upto, including some chars with 8th bit set
  56.    write()
  57.    skips := '\x00\x0f\x1e-<KZix\x87\x96\xa5\xb4\xc3\xd2\xe1\xf0\xff'
  58.    vowels := 'aeoiuAEIOU'
  59.    uppers := &cset -- &ascii
  60.    &ascii ? {
  61.       every writes(" ", "ascii?skips" | upto(skips) | "\n")
  62.       every writes(" ", "ascii?vowls" | upto(vowels) | "\n")
  63.       }
  64.    &letters ? {
  65.       every writes(" ", "letts?skips" | upto(skips) | "\n")
  66.       every writes(" ", "letts?vowls" | upto(vowels) | "\n")
  67.       }
  68.    vowels ? {
  69.       every writes(" ", "vowls?skips" | upto(skips) | "\n")
  70.       every writes(" ", "vowls?letts" | upto(&letters) | "\n")
  71.       every writes(" ", "vowls?ascii" | upto(&ascii) | "\n")
  72.       }
  73.    skips ? {
  74.       every writes(" ", "skips?vowls" | upto(vowels) | "\n")
  75.       every writes(" ", "skips?letts" | upto(&letters) | "\n")
  76.       every writes(" ", "skips?ascii" | upto(&ascii) | "\n")
  77.       every writes(" ", "skips?upprs" | upto(uppers) | "\n")
  78.       every writes(" ", "skips?skips" | upto(skips) | "\n")
  79.       }
  80.    uppers ? {
  81.       every writes(" ", "upprs?ascii" | upto(&ascii) | "\n")
  82.       every writes(" ", "upprs?skips" | upto(skips) | "\n")
  83.       }
  84. end
  85.