V10/cmd/spitbol/test2.spt
-TITLE SPITBOL TEST PROGRAM #2 -- DIAGNOSTICS PHASE TWO
-IN80
*
OUTPUT = 'TEST #2 '
*
*
* THIS IS THE STANDARD TEST PROGRAM FOR SPITBOL WHICH
* TESTS PATTERN MATCHING
*
&ANCHOR = 0
&ANCHOR = 0
DEFINE('ERROR()')
&TRACE = 1000
&ERRLIMIT = 100
TRACE(.ERRTYPE,'KEYWORD')
OUTPUT = '**********************************************'
OUTPUT = '**** SPITBOL DIAGNOSTICS -- PHASE TWO ****'
OUTPUT = '**********************************************'
FLOOP ERRCOUNT = 0
TEST = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
*
* TEST PATTERN MATCHING AGAINST SIMPLE STRING
*
TEST 'ABC' :S(S01) ; ERROR()
S01 TEST 'BCD' :S(S02) ; ERROR()
S02 TEST 'XYZ' :S(S03) ; ERROR()
S03 TEST 'ABD' :F(S04) ; ERROR()
S04 &ANCHOR = 1
TEST 'ABC' :S(S05) ; ERROR()
S05 TEST 'BCD' :F(S06) ; ERROR()
S06 TEST TEST :S(S06A) ; ERROR()
*
* TEST SIMPLE CASES OF $
*
S06A TEST 'ABC' $ VAR :S(S07) ; ERROR()
S07 IDENT(VAR,'ABC') :S(S08) ; ERROR()
S08 TEST 'ABC' . VARD :S(S09) ; ERROR()
S09 IDENT(VARD,'ABC') :S(S10) ; ERROR()
*
* TEST LEN
*
S10 &ANCHOR = 0
TEST LEN(3) $ VARL :S(S11) ; ERROR()
S11 IDENT(VARL,'ABC') :S(S12) ; ERROR()
S12 TEST LEN(26) $ VARL :S(S13) ; ERROR()
S13 IDENT(VARL,TEST) :S(S14) ; ERROR()
S14 TEST LEN(27) :F(S15) ; ERROR()
*
* TEST TAB
*
S15 TEST TAB(3) $ VART :S(S16) ; ERROR()
S16 IDENT(VART,'ABC') :S(S17) ; ERROR()
S17 TEST TAB(26) $ VART :S(S18) ; ERROR()
S18 IDENT(TEST,VART) :S(S19) ; ERROR()
S19 TEST TAB(0) $ VART :S(S20) ; ERROR()
S20 IDENT(VART) :S(S21) ; ERROR()
*
* TEST ARB
*
S21 TEST ARB $ VARA 'C' :S(S22) ; ERROR()
S22 IDENT(VARA,'AB') :S(S23) ; ERROR()
S23 &ANCHOR = 1
TEST ARB $ VARA POS(60) :F(S24) ; ERROR()
S24 IDENT(VARA,TEST) :S(S25) ; ERROR()
*
* TEST POS
*
S25 TEST ARB $ VARA POS(2) $ VARP :S(S26) ; ERROR()
S26 (IDENT(VARA,'AB') IDENT(VARP)) :S(S27) ; ERROR()
S27 &ANCHOR = 0
TEST ARB $ VARA POS(26) $ VARP :S(S28) ; ERROR()
S28 (IDENT(VARA,TEST) IDENT(VARP)) : S(S29) ; ERROR()
S29 TEST ARB $ VARA POS(0) $ VARP :S(S30) ; ERROR()
S30 IDENT(VARA VARP) :S(S31) ; ERROR()
S31 TEST POS(0) ARB $ VARA POS(26) :S(S32) ; ERROR()
S32 IDENT(TEST,VARA) :S(S33) ; ERROR()
S33 TEST POS(2) ARB $ VARA POS(3) :S(S34) ; ERROR()
S34 IDENT(VARA,'C') :S(S35) ; ERROR()
S35 TEST POS(27) :F(S36) ; ERROR()
*
* TEST RPOS
*
S36 TEST ARB $ VARA RPOS(25) :S(S37) ; ERROR()
S37 IDENT(VARA,'A') :S(S38) ; ERROR()
S38 TEST ARB $ VARA RPOS(0) :S(S39) ; ERROR()
S39 IDENT(TEST,VARA) :S(S39A) ; ERROR()
S39A TEST ARB $ VARA RPOS(26) :S(S40) ; ERROR()
S40 IDENT(VARA) :S(S41) ; ERROR()
S41 TEST RPOS(27) :F(S42) ; ERROR()
*
* TEST RTAB
*
S42 TEST RTAB(26) $ VARA :S(S43) ; ERROR()
S43 IDENT(VARA) :S(S44) ; ERROR()
S44 TEST RTAB(27) :F(S45) ; ERROR()
S45 TEST RTAB(0) $ VARA :S(S46) ; ERROR()
S46 IDENT(VARA,TEST) :S(S47) ; ERROR()
S47 TEST RTAB(25) $ VARA :S(S48) ; ERROR()
S48 IDENT(VARA,'A') :S(S49) ; ERROR()
*
* TEST @
*
S49 TEST LEN(6) @VARA :S(S50) ; ERROR()
S50 IDENT(VARA,6) :S(S51) ; ERROR()
S51 TEST @VARA :S(S52) ; ERROR()
S52 IDENT(VARA,0) :S(S53) ; ERROR()
S53 TEST LEN(26) @VARA :S(S54) ; ERROR()
S54 IDENT(VARA,26) :S(S55) ; ERROR()
*
* TEST BREAK
*
S55 TEST BREAK('C') $ VARA :S(S56) ; ERROR()
S56 IDENT(VARA,'AB') :S(S57) ; ERROR()
S57 TEST BREAK('Z()') $ VARA :S(S58) ; ERROR()
S58 IDENT(VARA,'ABCDEFGHIJKLMNOPQRSTUVWXY') :S(S59) ; ERROR()
S59 TEST BREAK(',') :F(S60) ; ERROR()
S60 LPAD(TEST,1000) BREAK('A') $ VARA :S(S61) ; ERROR()
S61 IDENT(LPAD(' ',1000 - 26),VARA) :S(S62) ; ERROR()
S62 LPAD(TEST,1000) BREAK(',') :F(S63) ; ERROR()
*
* TEST SPAN
*
S63 TEST SPAN(TEST) $ VARA :S(S64) ; ERROR()
S64 IDENT(TEST,VARA) :S(S65) ;ERROR()
S65 TEST SPAN('CDQ') $ VARA :S(S66) ; ERROR()
S66 IDENT(VARA,'CD') :S(S67) ; ERROR()
S67 TEST SPAN(',') :F(S68) ; ERROR()
S68 LPAD(TEST,1000) SPAN(' ') $ VARA :S(S69) ; ERROR()
S69 IDENT(VARA,LPAD(' ',1000 - 26)) :S(S70) ; ERROR()
*
* TEST BREAKX
*
S70 (TEST TEST) POS(0) BREAKX('E') $ VARA '.' :F(S71) ; ERROR()
S71 IDENT(VARA,TEST 'ABCD') :S(S72) ; ERROR()
S72 TEST BREAKX('.') :F(S73) ; ERROR()
*
* TEST ANY
*
S73 TEST ANY('MXZ') $ VARA :S(S74) ; ERROR()
S74 IDENT(VARA,'M') :S(S75) ; ERROR()
S75 TEST ANY(',.') :F(S76) ; ERROR()
*
* TEST NOTANY
*
S76 TEST NOTANY('ABCDEFGHJKLMPQRSTUWXYZ') $ VARA :S(S77) ; ERROR()
S77 IDENT(VARA,'I') :S(S78) ; ERROR()
S78 TEST NOTANY(TEST) :F(S79) ; ERROR()
*
* TEST REM
*
S79 TEST REM $ VARA :S(S80) ; ERROR()
S80 IDENT(VARA,TEST) :S(S81) ; ERROR()
S81 TEST LEN(26) REM $ VARA :S(S82) ; ERROR()
S82 IDENT(VARA) :S(S83) ; ERROR()
*
* TEST ALTERNATION
*
S83 TEST ('ABD' | 'AB') $ VARA :S(D84) ; ERROR()
D84 IDENT(VARA,'AB') :S(D85) ; ERROR()
D85 TEST (TEST 'A' | TEST) $ VARL :S(D86) ; ERROR()
D86 IDENT(VARL,TEST) :S(D00) ; ERROR()
*
* TEST DEFERRED STRINGS
*
D00 TEST *'ABC' :S(D01) ; ERROR()
D01 TEST *'ABD' :F(D06) ; ERROR()
*
* TEST $ . WITH DEFERRED NAME ARGUMENTS
*
D06 TEST 'ABC' $ *VAR :S(D07) ; ERROR()
D07 IDENT(VAR,'ABC') :S(D08) ; ERROR()
D08 TEST 'ABC' . *$'VARD' :S(D09) ; ERROR()
D09 IDENT(VARD,'ABC') :S(D10) ; ERROR()
*
* TEST LEN WITH DEFERRED ARGUMENT
*
D10 &ANCHOR = 0
TEST LEN(*3) $ VARL :S(D11) ; ERROR()
D11 IDENT(VARL,'ABC') :S(D15) ; ERROR()
*
* TEST TAB WITH DEFERRED ARGUMENT
*
D15 TEST TAB(*3) $ VART :S(D16) ; ERROR()
D16 IDENT(VART,'ABC') :S(D21) ; ERROR()
*
* TEST POS WITH DEFERRED ARGUMENT
*
D21 &ANCHOR = 1
TEST ARB $ VARA POS(*2) $ VARP :S(D26) ; ERROR()
D26 (IDENT(VARA,'AB') IDENT(VARP)) :S(D27) ; ERROR()
D27 &ANCHOR = 0
TEST ARB $ VARA POS(*0) $ VARP :S(D35) ; ERROR()
D35 IDENT(VARA VARP) :S(D36) ; ERROR()
*
* TEST RPOS WITH DEFERRED ARGUMENT
*
D36 TEST ARB $ VARA RPOS(*25) :S(D37) ; ERROR()
D37 IDENT(VARA,'A') :S(D38) ; ERROR()
*
* TEST RTAB WITH DEFERRED ARGUMENT
*
D38 TEST RTAB(*26) $ VARA :S(D43) ; ERROR()
D43 IDENT(VARA) :S(D49) ; ERROR()
*
* TEST @ WITH DEFERRED ARGUMENT
*
D49 TEST LEN(6) @*VARA :S(D50) ; ERROR()
D50 IDENT(VARA,6) :S(D51) ; ERROR()
D51 TEST @*$'VARA' :S(D52) ; ERROR()
D52 IDENT(VARA,0) :S(D55) ; ERROR()
*
* TEST BREAK WITH DEFERRED ARGUMENT
*
D55 TEST BREAK(*'C') $ VARA :S(D56) ; ERROR()
D56 IDENT(VARA,'AB') :S(D57) ; ERROR()
*
* TEST SPAN WITH DEFERRED ARGUMENT
*
D57 TEST SPAN(*TEST) $ VARA :S(D64) ; ERROR()
D64 IDENT(TEST,VARA) :S(D70) ; ERROR()
*
* TEST BREAKX WITH DEFERRED ARGUMENT
*
D70 (TEST TEST) POS(*0) BREAKX(*'E') $ VARA '.' :F(D71) ; ERROR()
D71 IDENT(VARA,TEST 'ABCD') :S(D73) ; ERROR()
*
* TEST ANY WITH DEFERRED ARGUMENT
*
D73 TEST ANY(*'MXZ') $ VARA :S(D74) ; ERROR()
D74 IDENT(VARA,'M') :S(D75) ; ERROR()
*
* TEST NOTANY WITH DEFERRED ARGUMENT
*
D75 TEST NOTANY(*'ABCDEFGHJKLMPQRSTUWXYZ') $ VARA :S(D77)
ERROR()
D77 IDENT(VARA,'I') :S(D79) ; ERROR()
D79 :(ALLDONE)
EJECT
*
* ERROR HANDLING ROUTINE
*
ERROR OUTPUT = '****** ERROR DETECTED AT ' &LASTNO ' ********'
OUTPUT = DIFFER(&ERRTEXT) ' &ERRTEXT = ' &ERRTEXT
ERRCOUNT = ERRCOUNT + 1
DUMP(1) :(RETURN)
*
* TERMINATION ROUTINE
*
ALLDONE
ERRCOUNT = ERRCOUNT + &ERRLIMIT - 100
&ERRLIMIT = 100
OUTPUT = EQ(ERRCOUNT,0)
. '**** NO ERRORS DETECTED ****'
OUTPUT = '**********************************************'
OUTPUT = '**** END OF DIAGNOSTICS ****'
OUTPUT = '**********************************************'
END