* file: myAray.sno VECTOR = ARRAY(10,5) I = 1 AGAIN OUTPUT = VECTOR I = I + 1 LT (I,10) :(AGAIN) OUTPUT = ' PROGRAM HAS ENDED NORMALLY ' END *U:\Web\CS430_~1\SNOBOL~1>snobol4 myaray.sno * *SNOBOL4+ Version 2.24. 8087 present. *(c) Copyright 1984,1998 Catspaw, Inc., Salida, Colo. All Rights Reserved. *7 LT (I,10) :(AGAIN) * ^ *myaray.sno(7,23) : Compilation error: Erroneous or missing break character * *Errors detected in source program * *7 * *myaray.sno(7) : Error 28, Execution of statement with compilation error *In statement 7 at level 0 ############################## * file: myAray2.sno VECTOR = ARRAY(10,5) I = 1 AGAIN OUTPUT = VECTOR I = I + 1 LT(I,10) :(AGAIN) OUTPUT = ' PROGRAM HAS ENDED NORMALLY ' END ############################## * file = myAray3.sno VECTOR = ARRAY(10,5) I = 1 AGAIN OUTPUT = VECTOR I = I + 1 LT(I,10) :S(AGAIN) OUTPUT = ' PROGRAM HAS ENDED NORMALLY ' END ############################## * file = myAray4.sno VECTOR1 = ARRAY('3,3') *this is a 3by3 array of nulls VECTOR3 = ARRAY('3,3','car') *this is a 3 by 3 array with every element initialized to 'car' VECTOR4 = ARRAY('3,3',27) *this is a 3 by 3 array with every element initialized to 27 VECTOR2 = ARRAY('-3:3') *this is a one dimensional array with indexes going from -3 to +3 I = 1 AGAIN OUTPUT = VECTOR4 I = I + 1 LT(I,10) :S(AGAIN) OUTPUT = ' PROGRAM HAS ENDED NORMALLY ' END ############################## * file: wap.sno DEFINE('WAP(FIRST)TEMP','WAP_START') :(WAP_END) WAP_START OUTPUT = ' I AM IN WAP ' OUTPUT = ' FIRST IS: ' FIRST TEMP = FIRST OUTPUT = ' TEMP IS ' TEMP FIRST = FIRST + 1 OUTPUT = ' FIRST IS NOW: ' FIRST WAP = FIRST :(RETURN) WAP_END I = 17 OUTPUT = 'Initially I is: ' I I = WAP(I) :F(ALMOST) OUTPUT = 'After call to WAP I is: ' I :(END) ALMOST OUTPUT = ' DIDN"T GET INTO WAP ' END ############################## * file: wap2.sno DEFINE('WAP(FIRST)TEMP') :(WAP_END) WAP OUTPUT = ' I AM IN WAP ' OUTPUT = ' FIRST IS: ' FIRST TEMP = FIRST OUTPUT = ' TEMP IS ' TEMP FIRST = FIRST + 1 OUTPUT = ' FIRST IS NOW: ' FIRST WAP = FIRST :(RETURN) WAP_END I = 17 OUTPUT = 'Initially I is: ' I I = WAP(I) :F(ALMOST) OUTPUT = 'After call to WAP I is: ' I :(END) ALMOST OUTPUT = ' DIDN"T GET INTO WAP ' END ############################## * file: wap3.sno DEFINE('WAP(FIRST)TEMP,J','WAP_START') :(WAP_END) WAP_START OUTPUT = ' I AM IN WAP ' OUTPUT = ' FIRST IS: ' FIRST TEMP = FIRST OUTPUT = ' TEMP IS ' TEMP J = 'cat' OUTPUT = ' J has been assigned the value: ' J FIRST = FIRST + 1 OUTPUT = ' FIRST IS NOW: ' FIRST WAP = FIRST :(RETURN) WAP_END I = 17 OUTPUT = 'Initially I is: ' I J = 68 OUTPUT = 'INITIALLY J IS: ' J I = WAP(I) :F(ALMOST) OUTPUT = 'AFTER CALL TO WAP, J IS: ' J OUTPUT = 'After call to WAP, I is: ' I :(END) ALMOST OUTPUT = ' DIDN"T GET INTO WAP ' END ############################## * file: wap4.sno EVIL EXAMPLE uses NON-LOCAL VARIABLE IN SUB-PROGRAM DEFINE('WAP(FIRST)TEMP','WAP_START') :(WAP_END) WAP_START OUTPUT = ' I AM IN WAP ' OUTPUT = ' FIRST IS: ' FIRST TEMP = FIRST OUTPUT = ' TEMP IS ' TEMP J = "fat cat" OUTPUT = ' J has been assigned the value: ' J FIRST = FIRST + 1 OUTPUT = ' FIRST IS NOW: ' FIRST WAP = FIRST :(RETURN) WAP_END I = 17 OUTPUT = 'Initially I is: ' I J = 637 OUTPUT = 'J in main program has value: ' J I = WAP(I) :F(ALMOST) OUTPUT = 'After call to WAP I is: ' I OUTPUT = 'J in main program has value: ' J :(END) ALMOST OUTPUT = ' DIDN"T GET INTO WAP ' END ############################## * file: wap5.sno DEFINE('WAP(FIRST)TEMP','WAP_START') :(WAP_END) WAP_START OUTPUT = ' I AM IN WAP ' OUTPUT = ' FIRST IS: ' FIRST TEMP = FIRST OUTPUT = ' TEMP IS ' TEMP FIRST = FIRST + 1 OUTPUT = ' FIRST IS NOW: ' FIRST WAP = "supercalifralisticexpialidoshis" :(RETURN) WAP_END I = 17 OUTPUT = 'Initially I is: ' I I = WAP(I) :F(ALMOST) OUTPUT = 'After call to WAP I is: ' I :(END) ALMOST OUTPUT = ' DIDN"T GET INTO WAP ' END ############################## * file: mySwap1.sno DEFINE('SWAP(FIRST,SECOND)TEMP','SWAP_START') :(SWAP_END) SWAP_START OUTPUT = ' IN SWAP VALUES ARE ' OUTPUT = ' FIRST IS: ' FIRST OUTPUT = ' SECOND IS ' SECOND TEMP = FIRST OUTPUT = ' TEMP IS ' TEMP FIRST = SECOND SECOND = TEMP OUTPUT = ' IN SWAP, VALUES ARE NOW ' OUTPUT = ' FIRST IS: ' FIRST OUTPUT = ' SECOND IS ' SECOND :(RETURN) SWAP_END I = '7' J = '12' OUTPUT = 'Initially I is: ' I ' and J is: ' J SWAP(.I,.J) :F(ALMOST) OUTPUT = 'After call to SWAP I is: ' I ' and J is: ' J :(END) ALMOST OUTPUT = ' DIDN"T GET INTO SWAP ' END ############################## * file: mySwap4.sno DEFINE('SWAP(FIRST,SECOND)TEMP','SWAP_START') :(SWAP_END) SWAP_START OUTPUT = ' IN SWAP VALUES ARE ' OUTPUT = ' FIRST IS: ' FIRST OUTPUT = ' SECOND IS ' SECOND TEMP = FIRST OUTPUT = ' TEMP IS ' TEMP FIRST = SECOND SECOND = TEMP OUTPUT = ' IN SWAP, VALUES ARE NOW ' OUTPUT = ' FIRST IS: ' FIRST OUTPUT = ' SECOND IS ' SECOND swap = 'junk' :(RETURN) SWAP_END I = '7' J = '12' OUTPUT = 'Initially I is: ' I ' and J is: ' J K = SWAP(.I, .J) :F(ALMS) output = ' value returned by function swap is: ' k OUTPUT = 'After call to SWAP I is: ' I ' and J is: ' J :(END) ALMS OUTPUT = ' DIDN"T GET INTO SWAP ' END ##############################