MCPcopy Create free account
hub / github.com/davidblewett/rure-python / c_class_bytes

Method c_class_bytes

regex/src/compile.rs:425–449  ·  view source on GitHub ↗
(&mut self, ranges: &[hir::ClassBytesRange])

Source from the content-addressed store, hash-verified

423 }
424
425 fn c_class_bytes(&mut self, ranges: &[hir::ClassBytesRange]) -> Result {
426 debug_assert!(!ranges.is_empty());
427
428 let first_split_entry = self.insts.len();
429 let mut holes = vec![];
430 let mut prev_hole = Hole::None;
431 for r in &ranges[0..ranges.len() - 1] {
432 self.fill_to_next(prev_hole);
433 let split = self.push_split_hole();
434 let next = self.insts.len();
435 self.byte_classes.set_range(r.start(), r.end());
436 holes.push(self.push_hole(InstHole::Bytes {
437 start: r.start(), end: r.end(),
438 }));
439 prev_hole = self.fill_split(split, Some(next), None);
440 }
441 let next = self.insts.len();
442 let r = &ranges[ranges.len() - 1];
443 self.byte_classes.set_range(r.start(), r.end());
444 holes.push(self.push_hole(InstHole::Bytes {
445 start: r.start(), end: r.end(),
446 }));
447 self.fill(prev_hole, next);
448 Ok(Patch { hole: Hole::Many(holes), entry: first_split_entry })
449 }
450
451 fn c_empty_look(&mut self, look: EmptyLook) -> Result {
452 let hole = self.push_hole(InstHole::EmptyLook { look: look });

Callers 2

cMethod · 0.80
c_byteMethod · 0.80

Calls 10

fill_to_nextMethod · 0.80
push_split_holeMethod · 0.80
set_rangeMethod · 0.80
push_holeMethod · 0.80
fill_splitMethod · 0.80
fillMethod · 0.80
lenMethod · 0.45
startMethod · 0.45
endMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected