X-Git-Url: https://jxself.org/git/?p=pdp10-muddle.git;a=blobdiff_plain;f=%3Cmdl.comp%3E%2Fnotana.mud.116;fp=%3Cmdl.comp%3E%2Fnotana.mud.116;h=39dbc9e6fbc192186ad7f73d4394978396e8095a;hp=0000000000000000000000000000000000000000;hb=3395a5e4ef72d59cdb6832af7808dc9c2cf2a413;hpb=363cc6ead5cf4df20759797fe46b5dc29b3886e9 diff --git a//notana.mud.116 b//notana.mud.116 new file mode 100644 index 0000000..39dbc9e --- /dev/null +++ b//notana.mud.116 @@ -0,0 +1,132 @@ + + + + + + + +" This module contains analysis and generation functions for +NOT, TYPE? and ==?. See SYMANA for more details about ANALYSIS and +CODGEN for more detali abour code generation. +" + +"Analyze NOT usage make sure arg can be FALSE." + +>) (STR .TRUTH) + (SUNT .UNTRUTH)) + #DECL ((NOD) NODE) + ) (TRUTH ()) (UNTRUTH ())) + #DECL ((PRED) (TRUTH UNTRUTH) ) + > >) + (ELSE + >> + > + > ANY>> + + FALSE> + ) + ( + .RTYP>) + (ELSE )>> + + )>> + + )> + .TEM> + + + +" Analyze N==? and ==? usage. Complain if types differ such that + the args can never be ==?." + +) + (WHON > .NOD>) (WHO ()) + (GLN .NOD) (GLE ())) + #DECL ((NOD) NODE (K) (WHON GLN) + (WHO GLE) ) + ) + (ELSE + ==?> + ANY> + ANY> + + >> FIX> + <==? >> FIX>> + + )> + .RTYP>)>> + + + + + +" Ananlyze TYPE? usage warn about any potential losers by using +TYPE-OK?. " + +) (LN ) ITYP (ALLGOOD T) + (WHO ()) (FTYP ()) (FNOK <>) + (WHON > .NOD>) TTYP) + #DECL ((NOD) NODE (K) (LN) FIX (ITYP) ANY + (ALLGOOD) (WHON) > + (WHO) (FTYP) LIST) + ) + (ELSE + + > + ANY TYPE?>> + + + ,QUOTE-CODE> + >>> + > + > + .ITYP> + !.FTYP)>>>> + > + >> + > <1 .FTYP>) + (ELSE )>> + + .ITYP>>> + + ) (SYM <2 .L>)) + #DECL ((L) SYMTAB> (SYM) SYMTAB) + >> + + .UNTRUTH + .FLG + >>>> + .WHO>) + (.ALLGOOD ) + (ELSE + > + )>)> + ') + ( FALSE) + (.FNOK ATOM) + (ELSE ')> + .RTYP>> + + + + \ No newline at end of file