package xm::pfe::fcodesortnspill;
use strict;
use xm::o;
"
look only for ITEMFCODEs in a text, an see if there is
a XDEF in a FORTHHEADER. This one is sorted into a list,
everything else is spilled. Spit out the sorted and cleaned
ITEMFCODE list. (see xm::pfe::cutfcodedocs )
"}
my $in = shift;
if ($in =~ m{ <FORTHHEADER>
((?:.(?!</?FORTHHEADER[\s>]))*.)
<XDEF>
((?:.(?!</?XDEF[\s>]))*.)
</XDEF>
}sx)
{ return $2; }
return "";
}
my $in = shift;
my $out = "";
my $xdef;
my $item; $in =~ s{ (<ITEM:?FCODE(?:\s[^<>]*)?>)
((?:.(?!</?ITEM:?FCODE[\s>]))*.)
(</ITEM:?FCODE(?:\s[^<>]*)?>)
}
{
$out = $1.$2.$3;
$xdef = getxdef ($2);
if (length $xdef)
{
$$item{$xdef} = $out;
}
}gsex;
for $xdef (sort keys %{$item})
{
$out .= $$item{$xdef}."\n";
}
return $out;
}
return xm::o::args_stdin(@_,DESC); }
return DO(xm::o::args_stdin(@_,DESC)); }
1;