}
if ($leave ne "others") {
- my @expr = @{$leaf{$leave}->{expr}};
+ my @expr = @{$leaf{"others"}->{expr}};
for (my $i = 0; $i < @names; $i++) {
foreach my $re (@expr) {
print STDERR "$names[$i] =~ /^$re\$/\n" if ($debug && $dbg_undefined);
# Convert what into regular expressions
- $what =~ s,/\.\.\./,/*/,g;
- $what =~ s,\*,.*,g;
+ # Escape dot characters
+ $what =~ s/\./\xf6/g;
# Temporarily change [0-9]+ type of patterns
$what =~ s/\[0\-9\]\+/\xff/g;
$what =~ s/[\{\<\[]([\w_]+)(?:[,|]+([\w_]+)){1,}[\}\>\]]/($1|$2)/g;
# Handle wildcards
+ $what =~ s,\*,.*,g;
+ $what =~ s,/\xf6..,/.*,g;
$what =~ s/\<[^\>]+\>/.*/g;
$what =~ s/\{[^\}]+\}/.*/g;
$what =~ s/\[[^\]]+\]/.*/g;
# Special case: IIO ABI which a parenthesis.
$what =~ s/sqrt(.*)/sqrt\(.*\)/;
+ # Simplify regexes with multiple .*
+ $what =~ s#(?:\.\*){2,}##g;
+# $what =~ s#\.\*/\.\*#.*#g;
+
+ # Recover dot characters
+ $what =~ s/\xf6/\./g;
+
my $leave = get_leave($what);
my $added = 0;