perlquestion
LanX
Hi<P><P>
I'm interested to translate Perl regexes to other languages, especially JavaScript and eLISP. <P><P>
This in the most reliable way, i.e. also including warnings if a feature is not translatable.<P><P>
Anyone aware of a working approach? I found many online analyzers which are easily fooled...especially with many experimental features in Perl RE.<P><P>
Otherwise I'd like to use the [doc://re] pragma in debug mode, but unfortunately this is not meant to be used for interactice introspection, or do I miss something?<P><P>
Plz check the following workaround and suggest better ways to do it:<P><P>
<c>
use strict;
use warnings;
my $log = parse_regex( q#(\\.|["']|x)# );
print $log;
sub parse_regex {
my ($regex) = @_;
#--- redirect STDERR
open my $olderr,">&STDERR";
close STDERR;
open STDERR,">",\ my $parselog;
# --- compile regex
eval q{
use re 'debug';
qr/$regex/;
};
# --- restore STDERR
close STDERR;
open STDERR, ">&", $olderr;
# warn "STDERR Restored! =)\n";
return $parselog;
}
</c><P><P>
<H5> out</H5>
<c>
/usr/bin/perl -w /home/lanx/B/PL/PM/parsere.pl
Compiling REx "(\.|[%"']|x)"
Final program:
1: OPEN1 (3)
3: BRANCH (6)
4: EXACT <.> (21)
6: BRANCH (18)
7: ANYOF["'] (21)
18: BRANCH (FAIL)
19: EXACT <x> (21)
21: CLOSE1 (23)
23: END (0)
minlen 1
Freeing REx: "(\.|[%"']|x)"
Compilation finished at Mon Nov 4 19:10:27
</c><P><P>
Of course this is only the first step, I still need to parse the output for RE-opcodes ... <P><P>
Suggestions for simplifications welcome.<P><P>
<!-- Node text goes above. Div tags should contain sig only -->
<div class="pmsig"><div class="pmsig-708738">
<p>Cheers Rolf
<p> <small>( addicted to the Perl Programming Language) </small>
</div></div>