0014#TEST3.RAT0036# SHOWS EXAMPLES OF FANCY MACROS0005#0044DEFINE (EOS=0) #MARK END OF A STRING0019DEFINE (EOF=-3)0050MACRO (GETS,IQ=STRGET(5,$,19);IF(IQ==EOF)STOP)0052MACRO (PUTS,J=STRPUT(5,$," ")) #PRINT A STRING0076MACRO (GETN,J=SCOPY("$",STR,9,J);WRITE(5,3)STR;READ(5,4)$) #GET A NUMBER0047MACRO (PUTN,WRITE(5,4)$) #PRINT A NUMBER0027DEFINE (CHARACTER,BYTE)0005#0074 CHARACTER STR1(20), STR2(20), STR3(20), STR4(30), STR5(20), STR(10)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^0069 INTEGER SCOPY, I, J, ERROR, LEN, N, SLEN, ISLEN, SREPT, STRPUT0043 INTEGER SSWAP, SMIDV, SINSRT, STRGET0005#0015 REPEAT [0051 GETS(STR1) #GET 3 STRINGS FROM OPERATOR0020 GETS(STR2)0020 GETS(STR3)0076 I=SMIDV(STR1, STR2, STR3, STR4, 29, ERROR) #ADD TOGETHER INTO STR40049 PUTN(I) #PRINT NUMBER OF CHARACTERS0046 PUTS(STR4) #PRNT RESULTANT STRING0011 ]0020 4 FORMAT (I5)0025 3 FORMAT (1X,10A1)0010 END^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^