http://qs1969.pair.com?node_id=1061170

LanX has asked for the wisdom of the Perl Monks concerning the following question:

Hi

I'm interested to translate Perl regexes to other languages, especially JavaScript and eLISP.

This in the most reliable way, i.e. also including warnings if a feature is not translatable.

Anyone aware of a working approach? I found many online analyzers which are easily fooled...especially with many experimental features in Perl RE.

Otherwise I'd like to use the re pragma in debug mode, but unfortunately this is not meant to be used for interactice introspection, or do I miss something?

Plz check the following workaround and suggest better ways to do it:

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; }

out
/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

Of course this is only the first step, I still need to parse the output for RE-opcodes ...

Suggestions for simplifications welcome.

Cheers Rolf

( addicted to the Perl Programming Language)