" 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) #DECL ((NOD) (K) (STYP) FIX (STATE) (DEFLT) ) > FIX) (ELSE ')>> > .RTYP>) (> > ,SEGMENT-CODE> > ,SEG-CODE> ,/> .DEFLT ()> !.K)>> <>) (ELSE T)>> ,-> ;"Treat like a call to ABS.") (ELSE )> .RT >) (ELSE > .K> > ,NODE-NAME 1.0> ,RESULT-TYPE FLOAT>)> <==? .NN MIN>> ,MIN-MAX-CODE) (ELSE ,ARITH-CODE)>> ,SEGMENT-CODE> )>> .K>) (ELSE )) #DECL ((N) NODE (CD) FIX) <==? .CD ,SEG-CODE>> ) (ELSE 1)>> .K> 2>>)> ] <- .STATE 1>> .RTYP>)>> >>> )) #DECL ((N NOD) NODE (STATE TT) FIX) ,SEGMENT-CODE> <==? ,SEG-CODE>> >
>> >>> > ANY>>) (ELSE >> ,QUOTE-CODE> <==? .STATE 3>> >> >)> 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> ' ABS>> > .RT> .TEM>)>> )) #DECL ((N) NODE (K) ) ) (ELSE 2 MOD> FIX MOD> FIX MOD> )> > ,QUOTE-CODE> > 1>)>) (ELSE FIX)> .R>> ) (NAM )) ) (ELSE 2 .NAM> ' .NAM> FIX .NAM> )> > > > > > ) TY NUM) #DECL ((N NUM) NODE (OT IT) ATOM (K) (COD) FIX) ) (ELSE 1 .OT> > ' .OT>> ,QUOTE-CODE> >>) (ELSE )>)> > > .NOD>) (WHO ()) (GLN .NOD) (GLE ()) (NN ) (N <==? .NN 1?> <==? ,0-TST-CODE>> 1) (ELSE 2)>) (K ) TEM (STATE 1)) #DECL ((WHO) (WHON GLN) (NOD NOD2) (TEM) NODE (K) (STATE) (COD N) FIX (GLE) ) ) (ELSE .N > >> .K> > ,QUOTE-CODE> <0? >> > >>> > ,QUOTE-CODE> <0? >> >>>> ) (<==? ,0-TST-CODE>) ( 0?> <==? N0?>> ) ( ,TEST-CODE) (<==? 0?> ,0-TST-CODE) (ELSE ,1?-CODE)>>) (<==? ,1?> ) ( ,==?> <==? ,N==?>> ) (ELSE )> )> )> .RTYP>> >) 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>> )) #DECL ((WHO GLE) LIST (NOD NOD2) NODE (K) ) 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?> )> STRUCTURED) (ELSE ) FORM>>)> ) (FLG <1 .L>)) #DECL ((L) (SYM) SYMTAB) >>) (ELSE >>)> T> .GLE>)>> ,PLUSINF) ('.VAL ,PLUSINF) (,MINUSINF '<- .VAL 1>) (,MINUSINF '.VAL) ('.VAL '.VAL) (,MINUSINF '<- .VAL 1> '<+ .VAL 1> ,PLUSINF)]> ) ('.VAL ,PLUSINF) ('<+ .VAL 1> ,PLUSINF) (,MINUSINF '<- .VAL 1> '<+ .VAL 1> ,PLUSINF) ('.VAL '.VAL)]> (NOD) NODE) ,APSUBTAB>>>>>> ) ,APSUBTAB>>>>>> >>>