X-Git-Url: https://jxself.org/git/?p=pdp10-muddle.git;a=blobdiff_plain;f=%3Cmdl.comp%3E%2Fstrgen.mud.33;fp=%3Cmdl.comp%3E%2Fstrgen.mud.33;h=f2c764092f8dbbbff24dd8885a3a02a1ea9109b9;hp=0000000000000000000000000000000000000000;hb=3395a5e4ef72d59cdb6832af7808dc9c2cf2a413;hpb=363cc6ead5cf4df20759797fe46b5dc29b3886e9 diff --git a//strgen.mud.33 b//strgen.mud.33 new file mode 100644 index 0000000..f2c7640 --- /dev/null +++ b//strgen.mud.33 @@ -0,0 +1,1867 @@ + + + + + + +]>]> + (RESTERS NTHERS PUTTERS) + VECTOR + (STYPES) + > + +)) + ) (ELSE + ;"Fool REG? into not losing.")>> + + +) REG RAC (FLS <==? .W FLUSHED>) + (B2 .BR) (ELSE )>) + (SDIR .DI) (B3 <>) B4 F1 F2 F3 + (SBR ) TT) + #DECL ((N) NODE (NUM) FIX (RAC) AC (K) ) + > ,QUOTE-CODE> <2 .K>) + (ELSE <1 .K>)>>>> + >> ) + (ELSE DONT-CARE)>>> + >>> + + >> + > ) (ELSE .DI)>> + >> + > + > + > + > + <==? .SBR G?>> >)> + + > > `JUMPE ) + (ELSE `JUMPN )> + + .B2) + (.F3 .B2) + (> + >>) + (ELSE .B2)>>> + > 0> + > + )> + + FIX> 0>> + >>) + (.FLG ) + (ELSE )> + > + + ()>>>) + (ELSE + + <+ .NUM 1>) (ELSE .NUM)>>> + >> + + >> + >>) + (ELSE .B2)>>> + ()>> + > + >) + (ELSE + + + .B2>>)> + )>)> + > + + ) + ( + .W>> + + + .W)>> + +>) T1 T2 STR + (ITYP ) (TYP ) RAC + REG (NEGOK <>) (*2OK <>) (HWOK <>) (SWOK <>) TR TRIN + TROUT (MUNG <>)) + #DECL ((STRN NOD) NODE (K) (STR REG) DATUM (RAC) AC + (T1 T2) ATOM (TRIN TROUT) (TRANSFORM) TRANS) + + <==? <1 >>> + > + >>>>> + <==? .TYP TUPLE>> + > + > <==? 2 <5 .TRIN>>> + + <==? 2 <4 .TRIN>> + <==? <5 .TRIN> -2> + >>>> + >> + >>>)> + > + >>> + .REG> + + + + .REG> + + > + >> + >>> + ()>> + > + + 0>>) + (<==? TEMPLATE> + + + .STR .RAC> + ) + ( + + + ) + (.HWOK + + + !>>) + (ELSE + !>> + )> + -2> )>) + (ELSE + >>) + (ELSE + + !>>)> + )> + + <==? .TYP STORAGE> + + > 2) (ELSE <5 .TRIN>)>>) + (ELSE + + + !>>)> + -1>> + )>> + + + + + ) + (ELSE )>) + (ELSE + + + !>> + )> + > + > + + +) (BRANCH <>) (DIR <>) + "AUX" (STRN <1 >) RAC STR (ITYP ) + (SDIR .DIR) (TYP ) + (FLS <==? .WHERE FLUSHED>) + (B2 .BRANCH) (ELSE )>) + (TEMP? <==? TEMPLATE>)) + #DECL ((STR) DATUM (STRN NOD) NODE (RAC) AC (B2) ATOM + (BRANCH) ) + > + + AC> ,ACPROT T> + + .STR + >>> + AC> ,ACPROT <>> + + > + )>) + (> FIX> 0>> + >>) + (ELSE >)> + >> + > ) (ELSE .DIR)>> + > + AC> > + > + .TEMP?> + + + .B2>>) + (ELSE + + + .B2>>)>) + ( AC> <==? .TYP BYTES>>> + > + + + -1>> + ) + (ELSE + + + !>> + ) + ( <==? .TYP BYTES>> + >> + + .B2>>) + (ELSE + + !>> + )>)> + + ) + ( + .WHERE>> + + + .WHERE)>> + + +) (TYP >) + (TPS ) (2ARG <2 .K>) (1ARG <1 .K>) + (NRP ) + (NUMKN <==? ,QUOTE-CODE>) + (NUM ) (ELSE 0)>) + (NR >) W TEM) + #DECL ((NOD) NODE (K) (TPS) ATOM (NUM) FIX) + > + .WHERE>>) + ()) + #DECL ((COMMON-SUB) >) + UVECTOR>>> + .NOD + .WHERE + .TYP + .TPS + .NUMKN + .NUM + <1 .K> + .2ARG + T + <> + .NR>> + >)> + + .W> + +) N SAC STR (MP ) NUMN + (ONO .NO-KILL) (NO-KILL .ONO) (LCAREFUL .CAREFUL) + (W2 + >) + (ELSE .TPS)> + .WHERE>)>)) + #DECL ((NOD NUMNOD STRNOD) NODE (STR NUMN) DATUM (ML N MP NUM) FIX + (SAC) AC (NUMNK R? RV) + (NR) > (WHERE W2) + (NO-KILL) ) + > + + >) + (<0? .NUM> + > + <0? .ML>> + + .R?>)> + >> + + .STR>)>) + (ELSE + >> + > .STR> + + [
>) .N>]>> + ) (ELSE )> + >)>) + (ELSE + >> + >) + (ELSE + > + >>)> + + + > ,ACPROT T> + + + + 0>) + (ELSE 0>)>>> + + + |CERR1 >>> + 1>>> + ()>> + !>> + .NUMN> + > + AC> + + ,ACLINK + (.NUMN !>)>)> + + > + + .ML>>> + >)> + > + + .STR> + >)>)> + > + +) PN (SAME? <>) + "AUX" (ONO .NO-KILL) (NO-KILL .ONO) + (RR + + .PN .NUMNOD> + .PN .STRNOD>>) VN + (NNUMKN .NUMKN) (NUMK <>) (NCAREFUL .CAREFUL) (FLAC <>) + STR SAC SAC1 (TYP1 ) (ELSE LIST)>) + NUMN NAC (T1 ) (T2 ) NTHCASE TEM + (ONE-OR-TWO-HRRZS <>) (PSTR <>) HI LO (REDEF <>)) + #DECL ((PN NOD STRNOD NUMNOD) NODE (STR NUMN VN) DATUM (T1 T2 TYP1 TPS) ATOM + (SAC SAC1 NAC) AC (NUM NTHCASE) FIX (NO-KILL) + (R? RR RV NUMK NUMKN NNUMKN) (WHERE) + (PAC) (PSTR) (HI LO) FIX + (NR) >) + > FIX>> ) + (>> FIX>>> + ) + (<1? > FIX>> )>)> + >> + > >> ) + (ELSE )> + + + > + ) (ELSE )> + > + >> + >)>)> + + >> 2) + (ELSE 0)> + ) (ELSE )> + >>> + 1) + (ELSE 0)> + > + ) (ELSE )>> + 1) + (ELSE 0)> + > + )> + >>> + 0) + (ELSE 1)> + 8) + ( >> 0) + ( >> 2) + ( >> 4) + (ELSE 6)>>> + > + >> + )> + + + > + + ) (ELSE ALL)>> + + ) + (ELSE ALL)>>>>>>> + ) + (ELSE )>>> + )> + >>> + ) + (ELSE )>>>) + (ELSE + ) + (ELSE )>>> + >>>)> + > )> + + AC>> + + > + .REDEF>> + >>> + ,ACPROT + T> + + ()>>>) + (ELSE >)> + + > + >>>>) + ( >)> + + + + .ONE-OR-TWO-HRRZS + <==? .SAC>>> + FIX> 0>> + >> + >) + ( + + ) + (ELSE )> + > + ,ACPROT <>>> + + > + + + >> + > + + ) + + .T1) (ELSE .T2)>>) + ( T) + (ELSE + ) + (<==? .ITM IA11> ()) + (<==? .ITM A1> ) + (<==? .ITM A2> ) + (<==? .ITM IA1> ()) + (<==? .ITM IA2> ()) + (<==? .ITM T1> .T1) + (<==? .ITM T2> .T2) + (ELSE .ITM)>> + .APAT>>)>> + >> + > + > + + > + )> + LIST 0>) + (.PAC + + + > + + ) (ELSE ALL)>> + + ) + (ELSE ALL)>>>>>>> + ) + (ELSE )>>> + )> + + >) + (ELSE >)> + + 1 ()>> + + + AC>> + ()>>) + ( + + ) + (ELSE ALL)>>>>>> + + + AC>> + ()>>)> + + + AC>> + 1 + ()>> + + + ,ACPROT <>>) + ( LIST>> + + )> + > + + + +) + -1>> + ) + (ELSE |CERR2 >>)>> + +) (BRANCH <>) (DIR <>) + "AUX" (K ) W2 B2 (SDIR .DIR) + (TYP >) (TPS ) W + (2ARG <2 .K>) (NUMKN <==? ,QUOTE-CODE>) + (NUM + OFFSET> + >) + (ELSE )>) (ELSE 1)>) + (COD UVECTOR>>) FLS + (NR >) (TEM <>) + (1ARG <1 .K>) (NRP ) NDAT + (DONE <>)) + #DECL ((NOD) NODE (K) (TPS) ATOM (NUM COD) FIX + (NDAT) DATUM) + )> + >> + >) + (ELSE )> + > + .W>> + ) + (> + >> + )> + )) + #DECL ((COMMON-SUB) + >>) + > + + .NOD + .WHERE + .TYP + .TPS + .NUMKN + .NUM + <1 .K> + .2ARG + .NOTF + .BRANCH + .DIR + .NR>) + (.BRANCH + >> + + + .NOD + .W + .TYP + .TPS + .NUMKN + .NUM + <1 .K> + .2ARG + .NR>>)> + > + + + + <=? .W .WHERE>>>>> + >> + >)> + .W + .DIR + > + + ) + (ELSE .W)> + .WHERE>> + + + )> + .W2) + ( + + .NOD + .WHERE + .TYP + .TPS + .NUMKN + .NUM + <1 .K> + .2ARG + .NR>) + (ELSE .W)>> + > + + )> + .W> + +) (RV <==? INTH>) + STR (TYPR >)) + #DECL ((NOD STRNOD NUMNOD) NODE (NUM MP) FIX (STR) DATUM + (WHERE) (TYPR RV NUMKN) ) + > ) + ( >>>> + + .RV + .NR>> + .MP> -2 .MP> .STR .TPS>>) + (ELSE + + .STRNOD + .NUMNOD + <> + .RV + .NR>> + 2> .STR .TPS>>)> + .STRN> + .WHERE>> + +>)) + #DECL ((NOD STRNOD NUMNOD) NODE (NUM COD) FIX (STR) DATUM (SAC) AC + (WHERE) (ITYP) ) + + .STRNOD + .NUMNOD + <> + <==? INTH> + .NR>> + > + > + .STRN> + .WHERE>> + +) + "AUX" STRD VD ND SACT SSAC SAC (ML ) + (BSYZ ) NWDS NCHRS (ONO .NO-KILL) + (NO-KILL .ONO) TEM (LCAREFUL .CAREFUL) + (OT CHARACTER) (ELSE FIX)>) + (RR + .VN .NUMN> + .VN .STRN>>) + (STAY-MEM + ,LVAL-CODE> + >>> + <==? > ,SET-CODE> + <==? >>>) + (W2 + > ) + (> ) + (ELSE DONT-CARE)>) (FLS <==? .W FLUSHED>) + SSTRD) + #DECL ((N NUMN STRN) NODE (STRD SSTRD ND VD) DATUM (NUM ML NWDS NCHRS) FIX + (SACT SSAC SAC) AC (NO-KILL) + (NR) > (VN) + (BSYZ) ) + >> )> + .N>) + (<0? .NUM> + > + <0? .ML>> + >> + >)> + >> + + .STRD>)> + + >>>)> + AC>> + + > .STRD> + + AC>> + !>>) + (ELSE + >> + AC>> `O>>)>)>) + (ELSE + > + AC> AC>> + >)> + > + >> + )> + + ) (ELSE )>> + > + + >>)> + AC> + >)>>) + (ELSE >>)> + + |CERR2 >>) + (ELSE + > + + `O + |CERR2 >>)> + AC> + > `O >>) + (ELSE + >>)>)>) + ( .R?> + + + > .STRD>)> + >>) + (> + + > .STRD> + .NUM>>) + (.R? + > + >>)> + > + + >) + ( AC> >)> + .VN> + > + >> + >> + .SAC>> + >) + (ELSE )> + > + > + > + > )> + > + + .NWDS>>) + (ELSE + > + >>)>)> + > 0> )> + >>>) + (ELSE + > + >) + (<1? .NUM> + AC> + .SSTRD>)> + >>) + (ELSE + AC> + .SSTRD>)> + > 0> )> + >>>)>)> + + + > + AC>> + >>) + (ELSE )>)>) + (ELSE + > + >> + >) + (> + > + >>) + (ELSE + >> + >>)> + AC> AC>> + >)> + > + >> + )> + + + + 0>) (ELSE 0>)>>> + + AC>> + |CERR1 >>)> + .ML>>>> + >> + AC> + >)>>) + (ELSE >>)> + .ML>>> + >)> + AC>>> + >>) + (.R? + + .STRD> + AC>> `O >>)>)> + > + + > ,ACPROT T> + + + <>> + ,ACPROT <>> + + >>) + (ELSE + 1>>> <>> + >)> + .BSYZ>>) + (ELSE .ND .STRD>>)> + + > + > 1>>> + ,ACPROT + T> + >> + !>> + > + > + .SSAC> .SAC .STAY-MEM>) + (ELSE >)> + + AC>> + !>>) + (ELSE + + + > + AC>> + >>)>)>)> + )> + .STRD) (ELSE )>> + +) + + + .STRN + .NUMN + <> + <==? INTH> + .NR>> + CHARACTER) + (ELSE FIX)> + AC>> + <>>) + (ELSE >)>>> + ,ACLINK (.RES !>)> + .STRD>)> + + + > + !>> + > + + (NR) >) + + .STRN + .NUMN + <> + <> + .NR + .VN>> + + (SAC SACT) AC) + > <>) + (ELSE + AC>> + .ND> + ) + (ELSE >)>> + ,ACPROT + T> + + >> + ,ACPROT <>> + >) + (ELSE + 1>> <>>>)> + > + + [>]>> + > + >> + .NUM>>) + (<==? .SAC >) + (ELSE + + + !>> + >)> + >> + .SAC)>> + + 1>>)) + #DECL ((SAC SAC1) AC (ST) DATUM) + AC> >>> + .ST> + AC>> >> + >) + (.STAY-MEM + !>>) + (ELSE + !>> + .ST> + + )>)> + '.HERE!-OP!-PACKAGE 3>> + >> + '.HERE!-OP!-PACKAGE -1>> + .ST> + + + + + +> + + ,TEMPLATE-NTH> + ,STRING-NTH + ,STRING-NTH + ,VEC-NTH + ,VEC-NTH + ,VEC-NTH + ,VEC-NTH + ,LIST-NTH]> + +) + "AUX" (K ) (TYP >) + (TPS ) (2ARG <2 .K>) + (NUMKN <==? ,QUOTE-CODE>) + (NUM + OFFSET> + >) + (ELSE )>) (ELSE 1)>) + (NR >) TEM W (1ARG <1 .K>) + (NRP >) PUT-COMMON-DAT) + #DECL ((NOD) NODE (K) (NUM) FIX + (PUT-COMMON-DAT) (W) DATUM) + )> + + > + >>> + + + .1ARG + .TPS + .SAME?>> + > + ) + (ELSE + + )) + #DECL ((COMMON-SUB) >) + + UVECTOR>>> + .NOD + .WHERE + .TYP + .TPS + .NUMKN + .NUM + <1 .K> + .2ARG + <3 .K> + .NR + .SAME?>> + > + TEMPLATE> + AC> + .PUT-COMMON-DAT>> + AC> + .PUT-COMMON-DAT>> + + >)> + TEMPLATE> + AC> + .PUT-COMMON-DAT>> + AC> + .PUT-COMMON-DAT>> + + >)> + .W> + + .NNOD .SNOD>>) + (RR + + .VNOD .SNOD> + .VNOD .NNOD>>) (MP ) + (NN 0) NAC SAC STR NUMN TEM (CFLG 0)) + #DECL ((N SNOD NNOD VNOD) NODE (NUM NN MP CFLG) FIX (SAC NAC) AC + (NUMN STR VN) DATUM (NO-KILL) + (NR) >) + > ) + ( > <1? >> + > + + >> + <>>>) + (ELSE + >> + <>>> + >>>)> + + ) + (ELSE )> + ) + (ELSE + > + + >>>> + ) + (ELSE + >> + >>> + >>> + )> + + + [ .MP>> (.NN)>]>> + > + ) + (ELSE )> + >> + + + []>>> + )>) + (ELSE + > )> + >> + >> + > + + >) + (ELSE + >> + >>>>)> + )> + + > + + 0>>> + |CERR1 >>> + 1>>> + ()>> + >> + >>> > + .NUMN> + + > + AC> + > + ,ACLINK + (.NUMN !)>)>) + (ELSE )> + + + >>>)> + ) + (ELSE >)> + + )>> + + + .SNOD + .NNOD + <> + <> + .NR + T + .VNOD .SAME?>> + + ,TEMPLATE-PUT> + ,STRING-PUT + ,STRING-PUT + ,VEC-PUT + ,VEC-PUT + ,VEC-PUT + ,VEC-PUT + ,LIST-PUT]> + +>) + (VTYP ) TT TEM) + #DECL ((N) DATUM (O RN TY) FIX (N2) DATUM (VNOD) NODE) + .TY> -2 .TY>> + + >> + > + >> + >> + ) + (> + + ,ACO T> + >> + ) + (ELSE + >> ,ACPROT T> + + !>> + + ,ACO T> + )>> + + >)> + >>) + (ELSE + >>)>) + (ELSE + > + > + >) + (ELSE > .TEM>)>>)>> + + <==? .TY STORAGE>> 1) + (ELSE 2)>> + +) PITEM) + #DECL ((NOD) NODE (K) (PITEM PINDIC) DATUM + (STK) ) + >> + >> + DONT-CARE>>> + + >> + >> + + + ,PUT> |CIPUT) + (ELSE |CIPUTP)>>> + + .WHERE>> + +) PINDIC PITEM) + #DECL ((NOD) NODE (K) (PINDIC PITEM) DATUM) + >> + >> + >> + >> + + + > + .WHERE>> + +) (FLG T) N CD (ONO .NO-KILL) + (NO-KILL .ONO) (2RET <>)) + #DECL ((NOD N) NODE (K) (ST1 ST2) DATUM + (NO-KILL) (ONO) LIST) + ,REST> + > + > + )> ;"Really > ,QUOTE-CODE> + <==? > ()>> + >>) + (>> + >> + > ,SNODES>> + >> ,LVAL-CODE> + >> 2> <2 .CD>) + (ELSE T)> + > + + ) + > >> + .NO-KILL>> + ) !.NO-KILL)>> + + .WHERE>) + (ELSE )>>> + + )>>> + ) + (ELSE + + .2RET> + DONT-CARE) + (ELSE .WHERE)>>>> + >>)> + + >>> + AC> + > |CERR2 >>) + (ELSE + >> + )>> + > + AC> >> + + AC>> + ( AC>>)>>) + (ELSE + AC>> + `@ + !>>)> + >) + (ELSE + AC>>)>>) + (ELSE + >>)>)> + .WHERE>> + + ,QUOTE-CODE> >> + + + ,QUOTE-CODE> + >>> + >> + >> ,SNODES>> + ,QUOTE-CODE> + >>> + >> + >> ,SNODES>>>> + + >> 2> <2 .CD>) + (ELSE T)> + > + + ) + > >> + .L>>> + ) !.L)>)> + ) + (ELSE .RV)>> + + +>>> + >>>>> + FIX>>>> + >>> + + 1 ()>> + + ) + (ELSE + + 1 ()>>)>) + (> + FIX> 0> + >> + + >> + )>> + >> + >>>> + >>> + + ()>> + )>> + > + 1 ()>> + + ) + (> + >>>> + + )>> + > + 1 ()>>)> + .STR> + +\ + +"ROUTINES TO DO COMMON SUBEXPRESSION HACKING IN SIMPLE CASES + (CURRENTLY NTH REST)." + +"ROUTINE TO CREATE A COMMON" + + (OBJ) FIX) + > + +"THIS ROUTINE BUILDS A CANONACAILZED COMMON. THIS ROUTINE CAN RETURN + EITHER A COMMON OR A LIST OF COMMONS." + + (ITEM) FIX + (CUR-COM) >) + + + > <1 .CLIST>) + (.CLIST)>>)> + .ITEM .PTYP .DAT>> + + ) + ( 1>> + .CLIST>)> + >>) + ( + > + >>> + > + + ( !.COMT)) + (ELSE + ( .COMT))>) + ()>) + (ELSE + REST> + ( + + <+ .ITEM > + .PTYP + .DAT>)) + ()>)>> + +"ROUTINE TO FIND A COMMON GIVEN A NODE" + +) (NUM <>)) + #DECL ((NOD) NODE) + + > + + + ) + ()>> + )>> + .ACR>)>> + ,ALLACS>>> + +"ROUTINE TO SEE IF A COMMON AND A NODE ARE EQUAL" + + (COM) ) + ) + ( >> + + + >)>> + +"ROUTINE TO SEE IF THE CODES OF THE COMMONS ARE EQUAL" + +)) + #DECL ((NODE) NODE (COM) COMMON) + <==? NTH>> + <==? REST>>>> + +"ROUTINE TO SEE IF THE NUMBERS OF A COMMON AND A NODE ARE EQUAL" + +>>)) + #DECL ((NODE) NODE (COM) COMMON) + <==? .NUM>> + +"ROUTINE TO SEE IF THE KIDS OF A COMMON AND A NODE ARE EQUAL" + +>)) + #DECL ((NODE) NODE (COM) COMMON) + ) (.KID)> + >> + +"ROUTINE TO FLUSH COMMONS IF PUTS OR PUTRESTS COME ALONG + IF TYP IS FALSE THEN KILL ALL COMMONS. + OTHERWISE KILL THOSE COMMONS WHICH ARE TYE SAME TYPE AS TYP OR UNKNOWN." + +) + + > + >)>> + ,ALLACS>> + +"FLUSH-COMMONS IS USED TO FLUSH ALL THE COMMONS FROM AN AC" + + (ACR) LIST) + .PTYP> + >> .FC>)>) + ()>> + ) (TOPACR .ACR)) + )> + .PTYP> >)> + > + >>> + +"FLUSH? SEES IF A COMMON SHOULD BE FLUSHED" + + + + <==? .PTYP>>>> + +"FLUSH-COMMON-SYMT IS USED TO FLUSH THE COMMONS ASSOCATED WITH A GIVEN SYMTAB" + + + > + .SYMT> ) + () (SACR .ACR)) + )> + .SYMT> + > + )> + > + >>)>)>> + <>) (ELSE .ACR)>>> + ,ALLACS>> + + + > .SYMT> + >)>> + +"SEE IF NODE CONTAINS SYMTABS" + +)) + #DECL ((NOD) NODE) + ,LVAL-CODE> + <==? ,SET-CODE>>> + )>> + +"SEE IF THIS IS A NTH OR REST OR PUT CODE" + +)) + #DECL ((NOD) NODE) + + <==? .COD ,REST-CODE> + <==? .COD ,NTH-CODE>>> + +"SMASH A COMMON INTO AN DATUM" + +> AC> + > + )>>)> + > AC> + > + )>>)> + >> + +) COM) + #DECL ((W) DATUM) + AC> .NUMKN> + >) + (.NRP )> + > + + > .COM>) + ()> + )>)>> + + + + )>> + >)>> + +)) + #DECL ((NOD) NODE (K) ) + > ,QUOTE-CODE> + + REST + <- > FIX> 1>>>> + + .NAME> + + >> + +) + (ETYP ) + (VTYP ) ODAT VDAT AC) + #DECL ((VDAT ODAT NDAT) DATUM (TEM) COMMON (NOD) NODE (NUM) FIX + (VAL OBJ) NODE) + + >> + >> + > AC>> )> + > AC> )> + ANY-AC) (FLUSHED)> ANY-AC>>>> + ) + (ELSE + AC> ,ACPROT T> + AC> ,ACPROT T>)> + AC>> )> + AC> ,ACPROT <>> + AC> ,ACPROT <>>)> + + `HLLM ) (ELSE `MOVEM )> + AC>> + ( AC>>)>>)> + + AC>> + AC>>>>) + ( AC>> + 1 + ( AC>>)>>)>)> + + + ,NO-DATUM> + + + (NDAT) DATUM) + > + > .TPS> + > + .WHERE>)>> + + +>> + > AC> + )>)> + AC>> ,ACLINK (.DAT !)> + .DAT> + +