" This file contains analyzers and code generators for arithmetic SUBRs and predicates. For convenience many of the SUBRs that are similar are combined into one analyzer/generator. For more info on analyzers see SYMANA and on generators see CODGEN. " ]>> " Analyze +,-,* and /. Take care of no arg and one arg problems." ) (DEFLT ) (STATE 1) (K ) (FIXDIV <>) RT (ALL-CONST ALL-CONST)) #DECL ((NOD) (K) (STYP) FIX (STATE) (DEFLT) (ALL-CONST) ) > FIX) (ELSE ')>> > .RTYP>) (> > ,SEGMENT-CODE> > ,SEG-CODE> ,/> .DEFLT ()> !.K)>> <>) (ELSE T)>> .RT >> > ,QUOTE-CODE> ,-> >>>) (ELSE >>)> >> ) (<==? ,-> ) (ELSE )> .RT) (ELSE >> .K> >) (<==? .NN -> ! 0>)>> 1> )>) (<==? .NN *> 0) (ELSE 0.0)>>) (ELSE >)>) (<==? .NN /> .NOD> ) () .NOD> 0) (ELSE 0.0)>>) (ELSE ! 1>)>)>)> > ) ( > ,NODE-NAME 1.0> ,RESULT-TYPE FLOAT>)> <==? .NN MIN>> ,MIN-MAX-CODE) (ELSE ,ARITH-CODE)>> ,SEGMENT-CODE> )>> .K>) (ELSE )> ] <- .STATE 1>> .RTYP>)>> ) FIX>> >> ,QUOTE-CODE> <==? FIX> 0>> )>> .K>>)>> ) (KK .K) (KP ())) #DECL ((KK KP K) (C) FIX (FC) FLOAT) )> >> ,QUOTE-CODE> .C> <==? .FC>>> >>> )>) (ELSE >)>) (ELSE )> >>> VECTOR>>>> FIX> FIX>]> ) (A-C .ALL-CONST) (NOD .NOD) (ISTATE .STATE)) #DECL ((N NOD) NODE (STATE TT ISTATE) FIX) ,SEGMENT-CODE> <==? ,SEG-CODE>> >
>> >>> > > ANY>>) (ELSE >> ,QUOTE-CODE> <==? .ISTATE 3>> >> )> >) (.A-C >>)>) (ELSE >)>)> FIX> 1) (<==? .TEM FLOAT> 2) (> >) (ELSE FIX)>> 1) (> >) (ELSE FLOAT)>> 2) (ELSE 3)>> > ("Arithmetic can't open compile because: " .N " is of type: " .TEM)>)> .TT>>> ) TEM) #DECL ((N) NODE (K) ) ) (ELSE 1 ABS .N> ' ABS>> .TEM>)>> )>>> )> )) #DECL ((N) NODE (K) ) ) (ELSE 2 MOD .N> FIX MOD> FIX MOD> > ,QUOTE-CODE> <==? > ,QUOTE-CODE>> > >>> ) (ELSE )>)> >> <==? > ,QUOTE-CODE>> > FIX> 1>)>) (ELSE FIX)> .R>> )> ) (NAM )) ) (ELSE 2 .NAM .N> ' .NAM> FIX .NAM> > ,QUOTE-CODE> <==? > ,QUOTE-CODE>> > >>>) (ELSE > >>>)> ) (ELSE )>)> > > > )> > )> > )> ) TY NUM) #DECL ((N NUM) NODE (OT IT) ATOM (K) (COD) FIX) ) (ELSE 1 .OT .N> > ' .OT>> ,QUOTE-CODE> >>) (ELSE )>)> > > .NOD>) (WHO ()) (GLN .NOD) (GLE ()) (NN ) (N <==? .NN 1?> <==? ,0-TST-CODE>> 1) (ELSE 2)>) (K ) TEM (STATE 1) KT NT (ALL-CONST ALL-CONST) (TY BOOLEAN)) #DECL ((WHO) (WHON GLN ALL-CONST) (NOD NOD2) (TEM) NODE (K) (STATE) (COD N) FIX (GLE) ) >) (ELSE <==? 1> <==? >>> ,SUBR-CODE> <==? LENGTH> <==? >> 2>> > ,PARENT .NOD>> )> .N .NOD> >> .K> .ALL-CONST>>)> >> ) ( > ,QUOTE-CODE> > 0> <==? > 0.0>> > >>> > ,QUOTE-CODE> > 0> <==? > 0.0>> >>>> ) (<==? ,0-TST-CODE>) ( 0?> <==? N0?>> ) ( ,TEST-CODE) (<==? 0?> ,0-TST-CODE) (ELSE ,1?-CODE)>>) (<==? ,1?> ) ( ,==?> <==? ,N==?>> ) (ELSE > )> > )> )> > > '>) DATA CONST K) #DECL ((NN DATA N) NODE (CONST) ) ,0-TST-CODE> <==? ,CHTYPE-CODE> >> ,GETBITS-CODE> > <==? > ,QUOTE-CODE> > > -1>>> ,BITL-CODE> <==? ,ANDB> <==? >> 2> > ,QUOTE-CODE> >> >> > ,QUOTE-CODE> >> >> >>>> (.DATA)) (ELSE .K)>> ) (ELSE ,PARENT .N> ,PARENT .N>)>)>> )) #DECL ((N) NODE (K) ) ' BIT-TEST> >>> ' BIT-TEST>)> .R>> ) DC) #DECL ((WHO GLE) LIST (NOD NOD2) NODE (K) (NUM) ) 0?> <==? ,0-TST-CODE>> > 0) (<==? 1?> > 1) (<==? > ,QUOTE-CODE> > >) (<==? > ,QUOTE-CODE> > >> <1 .K>)> >)>> >> >> )) #DECL ((L) (SYM) SYMTAB) >> >>> .WHO>)> > > G=?> <==? L?>>> G?> > <==? L=?>>>> >)> '[1? L? L=? ==?]>>> 0?> )> ) (ELSE ) FORM>>)> ) (FLG <1 .L>)) #DECL ((L) (SYM) SYMTAB) >>) (ELSE >>)> T> .GLE>)>> > .VAL) (ELSE <+ .VAL 1>)> ,PLUSINF) ('.VAL ,PLUSINF) (,MINUSINF ' .VAL) (ELSE <- .VAL 1>)>) (,MINUSINF '.VAL) ('.VAL '.VAL) (,MINUSINF ' .VAL) (ELSE <- .VAL 1>)> ' .VAL) (ELSE <+ .VAL 1>)> ,PLUSINF)]> .VAL) (ELSE <- .VAL 1>)>) ('.VAL ,PLUSINF) (' .VAL) (ELSE <+ .VAL 1>)> ,PLUSINF) (,MINUSINF ' .VAL) (ELSE <- .VAL 1>)> ' .VAL) (ELSE <+ .VAL 1>)> ,PLUSINF) ('.VAL '.VAL)]> (NOD) NODE) ,APSUBTAB>>>>>> ) ,APSUBTAB>>>>>> >>> )>