% % stack: seek-str % ">finf\" _\ & log)( isnull { % % have exhausted help subject to seek % pop "=" } if % % stack: seek-str node anchor str-pos % { % % check for possible operation code in front of remaining seek string % dup 1 left < |# % % absolute xhelp reference % -1 left % % peel back all the xhelp layers to the top tree % *unxhelps % % the current node is the root of the topmost xhelp tree % %%% select* > not % % if the char in front is not intercepted % the flag here will be true for exit % exch isnull { % % the sub-operation has exhausted the search string, use current node % pop2 false "=" } if exch % % stack: seek-remain xhelp-found % ? } loop "predecide" log)( % % the string remaining is a tree node address % find it based on the current node % dup false _\ @^Seek "node " &5 &" anchor " &4 &" pos " &3 &" flag" log)( % % stack: seek-str node anchor str-pos flag % % flag negative is no match, zero is match, and positive is no action % < % % stack: seek-str node anchor str-pos % |-1 "(nomatch" log)( % % partial match, node is negative, no equal match occurred % % extract matching prefix and remaining suffix % work with the node that last matched % fourth second - - fromleft % % check for descend through linked node % % stack: seek-str node anchor str-pos suffix % "(partial" log)( *xhelfing |0 % % full match of seek string, empty suffix to finish % empty % % stack: seek-str node anchor str-pos suffix % % check for descend through linked node % "(full" log)( *xhelfing > not { % % no part of string matched, suffix is the entire search string % 0 fourth % % stack: seek-str node anchor str-pos suffix % % check for descend through linked node % "(nopart" log)( *xhelfing } if % % stack: found % "