use libperl_rs::Perl;
use libperl_sys::{op, PL_op_name};
use std::env;
use std::ffi::CStr;
fn scan_ops(mut op: *const op) {
while !op.is_null() {
let ty = unsafe {(*op).op_type()};
print!("{:#?} {}\t{:?}\n",
op,
unsafe {
CStr::from_ptr(PL_op_name[ty as usize])
}
.to_str().unwrap(),
unsafe {*op},
);
op = unsafe {(*op).op_next as *const op};
}
}
#[cfg(perl_useithreads)]
fn my_test() {
let mut perl = Perl::new();
perl.parse_env_args(env::args(), env::vars());
scan_ops(unsafe {*perl.my_perl}.Imain_start);
}
#[cfg(not(perl_useithreads))]
fn my_test() {
let mut perl = Perl::new();
perl.parse_env_args(env::args(), env::vars());
scan_ops(unsafe {libperl_sys::PL_main_start});
}
fn main() {
my_test();
}