%BEGIN %CONSTSTRING(3)%ARRAY CHECK(1:3)="ABC","DEF","GHI"; %INTEGER I %STRING(3)%ARRAYFORMAT SF(1:3) %STRINGARRAYNAME SAN %RECORDFORMAT F(%INTEGER I,J,%STRING(3)%ARRAY S(1:3), %C %STRINGARRAYNAME SN) %RECORDNAME R(F) %OWNINTEGERARRAY A(0:8)=1,2,X'03414243',X'03444546',X'03474849',0(4) %ROUTINE CHECK VALUE(%INTEGER I,%STRING(31)S) %IF S#CHECK(I) %THEN PRINTSTRING(" BUG IN STRING VALUE") %AND %MONITOR %END %ROUTINE CHECKNAME(%INTEGER I,%STRINGNAME S) %IF S#CHECK(I) %THEN PRINTSTRING(" BUG IN STRING NAMES") %AND %MONITOR %END R==RECORD(ADDR(A(0))) SAN==ARRAY(ADDR(A(2)),SF) R_SN==R_S CHECK VALUE(1,R_S(1)) CHECK NAME(1,R_S(1)) CHECK VALUE(1,R_SN(1)) CHECK NAME(1,R_SN(1)) CHECK VALUE(1,SAN(1)) CHECK NAME(1,SAN(1)) %CYCLE I=1,1,3 CHECK VALUE(I,R_S(I)) CHECK NAME(I,R_S(I)) CHECK VALUE(I,R_SN(I)) CHECK NAME(I,R_SN(I)) CHECK VALUE(I,SAN(I)) CHECK NAME(I,SAN(I)) %REPEAT %ENDOFPROGRAM