void genprim_maybe_methods(compile_t* c, reach_type_t* t) { ast_t* typeargs = ast_childidx(t->ast, 2); ast_t* typearg = ast_child(typeargs); reach_type_t* t_elem = reach_type(c->reach, typearg); maybe_create(c, t, t_elem); maybe_none(c, t); maybe_apply(c, t, t_elem); maybe_is_none(c, t); }
vespalib::string Regexp::get_prefix(vespalib::stringref re) { vespalib::string prefix; if ((re.size() > 0) && (re.data()[0] == '^') && !has_option(re)) { const char *end = re.data() + re.size(); const char *pos = re.data() + 1; for (; (pos < end) && !is_special(*pos); ++pos) { prefix.push_back(*pos); } if ((pos < end) && maybe_none(*pos) && !prefix.empty()) { prefix.resize(prefix.size() - 1); // pop_back } } return prefix; }