当前位置: 首页>>代码示例>>C++>>正文


C++ symbolOop::length方法代码示例

本文整理汇总了C++中symbolOop::length方法的典型用法代码示例。如果您正苦于以下问题:C++ symbolOop::length方法的具体用法?C++ symbolOop::length怎么用?C++ symbolOop::length使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在symbolOop的用法示例。


在下文中一共展示了symbolOop::length方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: add

void symbolTable::add(symbolOop s) {
  assert(s->is_symbol(),
         "adding something that's not a symbol to the symbol table");
  assert(s->is_old(), "all symbols should be tenured");
  int hashValue = hash((char*) s->bytes(), s->length());
  basic_add(s, hashValue);
}
开发者ID:jirkadanek,项目名称:Strongtalk,代码行数:7,代码来源:symbolTable.cpp

示例2: print_selector_with_arguments

static bool print_selector_with_arguments(prettyPrintStream*       output, 
                                          symbolOop                selector,
                                          GrowableArray<astNode*>* arguments,
                                          bool                     split) {
  if (selector->is_binary()) {
    // binary send
    output->print(selector->as_string());
    output->space();
    astNode* arg = arguments->at(0);
    bool wrap = should_wrap(1, arg);
    if (wrap) output->print("(");
    bool result = arg->print(output);
    if (wrap) output->print(")");
    return result;
  }

  int arg = arguments->length();

  if (arg == 0) {
    output->print(selector->as_string());
    return false;
  }

  for (int index = 1; index <= selector->length(); index++) {
    int c = selector->byte_at(index);
    output->print_char(c);
    if (c == ':') {
      output->space();
      astNode* a = arguments->at(--arg);
      bool wrap = should_wrap(2, a);
      if (wrap) output->print("(");
      a->print(output); 
      if (wrap) output->print(")");
         
      if (index < selector->length()) {
      	if (split) output->newline();
        else       output->space();
      }
    }
  }
  return split;
}
开发者ID:jirkadanek,项目名称:Strongtalk,代码行数:42,代码来源:prettyPrinter.cpp

示例3: is_present

bool symbolTable::is_present(symbolOop sym) {
  char* name = (char*) sym->bytes();
  int   len  = sym->length();
  int hashValue = hash(name, len);
  symbolTableEntry* bucket = bucketFor(hashValue);
  if (bucket->is_empty()) return false;
  if (bucket->is_symbol())
    return bucket->get_symbol()->equals(name, len);
  for (symbolTableLink* l = bucket->get_link(); l; l = l->next)
    if (l->symbol->equals(name, len)) return true;
  return false;
}
开发者ID:jirkadanek,项目名称:Strongtalk,代码行数:12,代码来源:symbolTable.cpp

示例4: add_symbol

void symbolTable::add_symbol(symbolOop s) {
  basic_add(s, hash((char*) s->bytes(), s->length()));
}
开发者ID:jirkadanek,项目名称:Strongtalk,代码行数:3,代码来源:symbolTable.cpp


注:本文中的symbolOop::length方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。