示例#1
0
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);
}
示例#2
0
文件: regexp.cpp 项目: songhtdo/vespa
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;
}