X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=MUDDLE%2Factor.45;fp=MUDDLE%2Factor.45;h=4a9b75ccba0ec3194308b1fe92a5c23a0d84809d;hb=39c5769144e7f2a58076bdb973d2c80fa603345c;hp=0000000000000000000000000000000000000000;hpb=bab072f950a643ac109660a223b57e635492ac25;p=pdp10-muddle.git diff --git a/MUDDLE/actor.45 b/MUDDLE/actor.45 new file mode 100644 index 0000000..4a9b75c --- /dev/null +++ b/MUDDLE/actor.45 @@ -0,0 +1,524 @@ + >> + + >> + + >> + '(ACTOR ACTOR-FUNCTION)> + .EXP> >> + + '(FORM SEGMENT)> + > + >> >> + + + 0> >> + + +) + (OBL T) (ENV <>) (OBJENV <>) (PURE? T) + (UV1 ) + "AUX" (UV2 ())) + > + FACTOR>> + <.INVOKER >) + (.PURE? + >) >) + (.OBL + FORM> + >> + FACTOR>> + <.INVOKER T <> .OBJENV .ENV .UV2>>) >) + (T >) >) + (T .OBJENV >>) > + > + .BOUND >> >>>> + > + > + .BOUND) + (T .OBJECT .BOUND>) >) + (.OBL + .BOUND>) + (T .BOUND <>>) >) + (<==? ACTOR-FUNCTION> + + + '.OBJECT '.BOUND '.OBL '.PURE? ' + ' !>>) + (<==? ACTOR> + + + ((BODY > 2) (1) >>)) + + (.OBJECT .BOUND .OBL .PURE? .OBJENV !.BODY)> >) + (T ) > >> ) RS (VALRS ()) (UV ()) PURESOFAR NEWVAL + NEWBOUND (VARLOC ) VARFORM RS2) + + >) + (T T .BOUNDARY>) > + <.GA .BOUNDARY>) + (.PURE? + <.GA .OBJECT .BOUNDARY>>) + (T <.GA .BOUND <>>>) >) > + LIST>> + + > + + <.GA .BOUNDARY>) > + >> + <==? .VARLOC + 2 .VAR> .OBJENV>>> + <.GA .BOUNDARY>) + (> + ) + (T + + <.CHECK <>>> + > > + ) + (<==? <1 .RS1> PATTERN> + .OBJECT <3 .RS1> .BOUNDARY .OBLIGATORY>) + (T + .OBJECT <3 .RS1> .OBJENV + > .BOUNDARY + .OBLIGATORY>) >> + + + + <.GA .BOUNDARY>) + (> + LIST> + .RS>> + ) >) + (T ) >>) > + >> + +
.OBJECT .BOUND .OBL? + .PURE? .ENV .OBJENV> >> + + + + +>> >> + + + + + >> + + + + +) + "AUX" UV) + + <==? .N > + >) + (> + .UV> + >> + <==? .N > >) + ( ) + (T > .OBJECT + <> .OBJENV .FORM1 .BOUND>) > + .BOUND) + (.PURE? + > ) + (T ) >) + (T ) >) + (T + .OBJENV>> + > >) > + .BOUND) > >> + + + <.ACTITER ) + (T ) >>) > + .OBJECT .ENV .BOUND .OBL?>) + (T + .OBJECT + .ENV + .OBJENV + > + .BOUND + .OBL?>) >> + + > > >> + + + + + +)) + .BOUND .OBL?>) + (T .OBJENV .BOUND .OBL?>) > >> + + + + +>>) + (T .OBJENV>) >> > + ) + (T .OBJENV>) > + .NAY-SAYER>> + () + <.NAY-SAYER .BOUND> >>> + + ) NEWBOUND) + ) + (.PURE? .OBJECT <> .BOUND .OBL?>) + (T .OBJECT <> .OBJENV + > .BOUND .OBL?>) >> + () .WA>> + + (.OBJECT .NEWBOUND T .PURE? .ENV .OBJENV !)> + .NEWBOUND >> + + >>) + (> + .PURE?> + >) + + (> + .VARFORM .ENV> + ) + (T ) >) + (.PURE? + >>>) + ( .OBJENV >> + .PURE?> + >) + (T ) > + .BOUND >> + + +> + ) + (T ) > >> + + + LIST>) + UNASSIGNED>> >> <==? .L1 .TERM1>> + ) + (<==? .L2 .TERM2> )> + <1 .L2>> > + > > + >> + + + +) + (PURELOC <>) + "AUX" V P (LP ) (CONSTRUCT >) + (BOUND )) + + > + + + () + ) + (<==? > SEGMENT> + .LP>> + + > + ) > + .BOUNDLOC>> + >>) + (.EV? P>> + >>> + >> + >) + (T >>> + >>> + > + >>>>) >>> >> ) (BOUND ) + "AUX" V P (LP )) + + ) + (<==? > SEGMENT> + .LP>> + + > + ) > + >>>) + (T >>) > >>> ) (ENV <>) + (LUV )) + + FORM> + ) + ( + + .EXP) + (T ) >>> + + +) + "AUX" (RESULT ()) (P ()) P1 (LP1 ) EXP1) + + <.INSTLP >>>) + (<==? >> SEGMENT> + ,CONSL> + !.RESULT)>) + (T !.RESULT)>) > + >> + > + >> + + +>> + > + .F) + ( >>>> + + ) + (> + > + .F) + (<==? .A1 ,ALTER> + >> ?()> + > + ) + (<==? .A1 ,GIVEN> + >>> + + ) + (T > + .F) >) + (T > + .F) >>> ) (ENV <>) + "AUX" UA ACTR VAR) + + FORM> + >> .UA) + ( 2> + >>> + + >>>> + > + (.VAR)) >) + (<==? .ACTR ,ALTER> + >> ?()> + (.VAR)) >) >) + (<==? .EXP .BOUND> ()) + (T > .BOUND>>) >>> + + +) + "AUX" VAR) + + + '(FORM SEGMENT)> + <==? <1 .F> LVAL> + >> + > >> + (.VAR)) + (T ) >) > >> + + + FORM> + <==? 2> + <==? <1 .OBJECT> GIVEN> + >>> + .RES> >> + + + FORM> + + SEGMENT> <.UNC T>>) + .OBJECT> + <>>> >> .OBJECT) + (T + >>) > >> + + + .RES) + (T !.RES)> + > + ) >>> + + +)) + .PAT) + ( .BEG) + (T > + !) + >>> + > + .PAT) >>> + + + .RESULT) + (T !.RESULT)> + > + ) >>> + + + T) + ( <>) + (T > + ) >>> )) + >> + >>) + (<==? <1 .RS1> PATTERN> + .OBJECT <3 .RS1> .BOUNDARY>) + () > + > > + >> + > + VALUE> + > + )) + >> + >> UNASSIGNED> + >>>) > + > > + <3 .VALRS1> <4 .VALRS1> <5 .VALRS1> + <6 .VALRS1> <7 .VALRS1>> + > > >> + + + >> + > + > + <==? <1 .R1> PATTERN> + <==? .ENV <3 .R1>> + <=UPTO? <2 .R1> .EXP .BOUND>> + <.CHECK T>) > + > > >> + + + > + <=? .EXP1 .EXP2>) + ( > <>) + ( <==? .EXP2 .BOUND>) + (<==? .EXP2 .BOUND> <>) + (<=? <1 .EXP1> <1 .EXP2>> + > > + ) >>) >>> ) (BOUND2 ) + "AUX" (LOCS + >)) + <.LINKER .LOCS>> + + > LIST>) UNASSIGNED>> + > > >> + + + ()) + (T + > !.LOCS)> + > + <.GEN .LOCS>> >) >>>  \ No newline at end of file