% % vector through ascending ownership stack % [Get] [=Vector] [Push] % % Vector: stack % _@ [Push] _owner [Push] false !ofound empty !repeats _owner [Push] % % Vector: stack cur@ owner ascend % % ascend through #-separated parts of the current tree name % { [=Vector] % % remove the rightmost term from the tree name % [Pop] "#" left$/ dup [Push] %%%"pep^ " log)( isnull) ? % % still have tree name ascending remaining % look for vector in the partial ascending tree name % 2 [@Index] %%% " { % % ascending child's intercept found, remove from vector stack % [Get] [=Vector] [Peel] [Peel] [Peel] [Peel] [Set] true } { false } ifelse dup !ofound ? % % not part of ascending child's intercept % check for ascending intercept % [=Vector] 2 [@Index] %%% " { % % ascending intercept found, remove from vector stack % [Get] [=Vector] [Peel] [Peel] [Peel] [Peel] [Set] true } { false } ifelse dup !ofound ? } loop _ofound { } { % % remove the ascending string part remaining from Vector stack % [=Vector] [Peel] % % Vector: stack cur@ owner % % must traverse back through top task of owners stack % [=Owners] %%% [Count] -2 1 %%% 2 %%% [Count] 2 [Count] %%% { %%% [=Owners] [Count] - - [@Index] %%% "trav " log)( % % stack: prev-owner % [=Vector] 1 [@Index] %%% " %%% "&*&*((" log)( % % stack: found % { % % did find vector for this prior owner % remove the vector entry % [Get] [=Vector] [Peel] [Peel] [Peel] [Set] % % did intercept % true } { % % no intercept yet % false } ifelse %%% dup !ofound %%% ? %%% } for _ofound { } { false _event default %%% "evdef" log)( pop } ifelse } ifelse