% % move current task to the sought position % _Chain.Back any? { % % move from current task tree % back to a common node with the target tree % % compare the destination string to the current task tree % @@ _@ true compare % % stack: difference position % the new position will be one beyond % the length of the current tree name % pop2nd _@ length) gt { % % the strings match to the current task tree % _Chain.Back _@ length) + fromleft % % now we need to move downward to the destination % !Chain.Forward empty !Chain.Back } { % % seek and task tree strings don't match to the current tree % "#" _@ Str.Found { % % this is sub-tree, need to move back up the chain % "Back" vector() } { % % at the apex of the Tree system % must be within Default Tree % entire seek string is forward target % _Chain.Back !Chain.Forward empty !Chain.Back } ifelse } ifelse "taskchin" chain( } { % % check for any forward steps needed % _Chain.Forward any? { % % there are steps remaining for forward arrival % % seek the tree specified in the hierarchy destination % by descending to the next destination point % % descend to the next step % "Via" vector() !Chain.Forward "taskchin" chain( } { % % no more chain steps % % retract the Chain survey layer % false "Chain" Task.Survey } ifelse } ifelse