1mod common;
2mod regex;
3
4use std::ffi::c_void;
5use mumu::parser::interpreter::Interpreter;
6
7use regex::find_all::register_regex_find_all;
8use regex::match_fn::register_regex_match;
9use regex::replace::register_regex_replace;
10use regex::split::register_regex_split;
11use regex::search::register_regex_search;
12use regex::test::register_regex_test;
13use regex::full_match::register_regex_full_match;
14use regex::to_string::register_regex_to_string;
15use regex::from_string::register_regex_from_string;
16
17pub fn register_all(interp: &mut Interpreter) {
18 register_regex_find_all(interp);
19 register_regex_match(interp);
20 register_regex_replace(interp);
21 register_regex_split(interp);
22 register_regex_search(interp);
23 register_regex_test(interp);
24 register_regex_full_match(interp);
25 register_regex_to_string(interp);
26 register_regex_from_string(interp);
27}
28
29#[no_mangle]
30pub extern "C" fn Cargo_lock(interp_ptr: *mut c_void, _unused: *const c_void) -> i32 {
31 if interp_ptr.is_null() { return -1; }
32 let interp = unsafe { &mut *(interp_ptr as *mut Interpreter) };
33 register_all(interp);
34 0
35}