Lines Matching refs:exprs
129 pub fn compile(mut self, exprs: &[Hir]) -> result::Result<Program, Error> {
130 debug_assert!(!exprs.is_empty());
131 self.num_exprs = exprs.len();
132 if exprs.len() == 1 {
133 self.compile_one(&exprs[0])
135 self.compile_many(exprs)
167 exprs: &[Hir],
169 debug_assert!(exprs.len() > 1);
172 exprs.iter().all(|e| e.is_anchored_start());
174 exprs.iter().all(|e| e.is_anchored_end());
185 for (i, expr) in exprs[0..exprs.len() - 1].iter().enumerate() {
195 let i = exprs.len() - 1;
197 self.c_capture(0, &exprs[i])?.unwrap_or_else(|| self.next_inst());
516 fn c_concat<'a, I>(&mut self, exprs: I) -> ResultOrEmpty
520 let mut exprs = exprs.into_iter();
522 match exprs.next() {
531 for e in exprs {
540 fn c_alternate(&mut self, exprs: &[Hir]) -> ResultOrEmpty {
542 exprs.len() >= 2,
543 "alternates must have at least 2 exprs"
556 for e in &exprs[0..exprs.len() - 1] {
573 if let Some(Patch { hole, entry }) = self.c(&exprs[exprs.len() - 1])? {