@@ empty !globlook empty !functions empty !globals empty !parameters empty !variables empty !exceptions 0 !functionc 0 !globalc 0 !parameterc 0 !variablec 0 !exceptionc root\ "Report" seek* { % % stack: report-node % dup !\ Tree.Below( { % % stack: last-dl-node % % descendants of the global node are globdd nodes % each globdd node has the name of the global % empty !address empty !function %%% "ga " count - & &" " log)( { % % stack: dl-node % %%% "gb " count - & &" " log)( dup Tree._First { % % stack: dl-node sub-dl-node % % process sub-dl entries % { %%% "gc " count - & &" " log)( dup Tree._Text < |address "text" second Tree.OfLast unescape *globaddr !address |dt "text" second Tree.OfLast unescape !type |dd "text" second Tree.OfLast unescape *globstep > not { % % this is a function name % %%% "gd " count - & &" " log)( dup Tree._Text %%% "gd1 " count - & &" " log)( "'" empty replall dup !function "function" !type %%% "gd2 " count - & &" " log)( *globstep %%% "gd3 " count - & &" " log)( } if % % stack: dl-node dl-sub-node % %%% "ge " count - & &" " log)( Mep._Next neg( ? } loop pop } { % % no sub-dl-nodes % } ifelse % % stack: dl-node % %%% "gf " count - & &" " log)( Tree.Prev( ? } loop pop % % stack: % } { % % no dls % pop } ifelse } { % % no report branch % } ifelse _globals &_globalc &; !globals _parameters &_parameterc &; !parameters _variables &_variablec &; !variables _exceptions &_exceptionc &; !exceptions _functions &_functionc &; !functions