regex_visitor/
regex_visitor.rs1#![expect(clippy::print_stdout)]
2use oxc_allocator::Allocator;
14use oxc_regular_expression::{
15 LiteralParser, Options,
16 visit::{RegExpAstKind, Visit},
17};
18use oxc_span::GetSpan;
19
20struct TestVisitor;
22
23impl Visit<'_> for TestVisitor {
24 fn enter_node(&mut self, kind: RegExpAstKind) {
25 println!("enter_node: {:?} {kind:?}", kind.span());
26 }
27
28 fn leave_node(&mut self, kind: RegExpAstKind) {
29 println!("leave_node: {:?} {kind:?}", kind.span());
30 }
31}
32
33fn main() {
35 let source_text = r"(https?:\/\/github\.com\/(([^\s]+)\/([^\s]+))\/([^\s]+\/)?(issues|pull)\/([0-9]+))|(([^\s]+)\/([^\s]+))?#([1-9][0-9]*)($|[\s\:\;\-\(\=])";
36
37 let allocator = Allocator::default();
38 let parser = LiteralParser::new(&allocator, source_text, None, Options::default());
39 let pattern = parser.parse().unwrap();
40
41 let mut visitor = TestVisitor;
43 visitor.visit_pattern(&pattern);
44}