这篇教程C++ symbol_name函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中symbol_name函数的典型用法代码示例。如果您正苦于以下问题:C++ symbol_name函数的具体用法?C++ symbol_name怎么用?C++ symbol_name使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了symbol_name函数的25个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: symbol_nameSymbol *objc_getMsgSend(Type *ret, bool hasHiddenArg){ if (hasHiddenArg) { if (!objc_smsgSend_stret) objc_smsgSend_stret = symbol_name("_objc_msgSend_stret", SCglobal, type_fake(TYhfunc)); return objc_smsgSend_stret; } // not sure if DMD can handle this else if (ret->ty == Tcomplex80) { if (!objc_smsgSend_fp2ret) objc_smsgSend_fp2ret = symbol_name("_objc_msgSend_fp2ret", SCglobal, type_fake(TYnfunc)); return objc_smsgSend_fp2ret; } else if (ret->ty == Tfloat80) { if (!objc_smsgSend_fpret) objc_smsgSend_fpret = symbol_name("_objc_msgSend_fpret", SCglobal, type_fake(TYnfunc)); return objc_smsgSend_fpret; } else { if (!objc_smsgSend) objc_smsgSend = symbol_name("_objc_msgSend", SCglobal, type_fake(TYnfunc)); return objc_smsgSend; } assert(0); return NULL;}
开发者ID:Angeldude,项目名称:dmd,代码行数:30,
示例2: nteh_declarvarsvoid nteh_declarvars(Blockx *bx){ symbol *s; //printf("nteh_declarvars()/n");#if MARS if (!(bx->funcsym->Sfunc->Fflags3 & Fnteh)) // if haven't already done it { bx->funcsym->Sfunc->Fflags3 |= Fnteh; s = symbol_name(s_name_context,SCbprel,tsint); s->Soffset = -5 * 4; // -6 * 4 for C __try, __except, __finally s->Sflags |= SFLfree | SFLnodebug; type_setty(&s->Stype,mTYvolatile | TYint); symbol_add(s); bx->context = s; }#else if (!(funcsym_p->Sfunc->Fflags3 & Fnteh)) // if haven't already done it { funcsym_p->Sfunc->Fflags3 |= Fnteh; if (!s_context) s_context = scope_search(s_name_context_tag,CPP ? SCTglobal : SCTglobaltag); symbol_debug(s_context); s = symbol_name(s_name_context,SCbprel,s_context->Stype); s->Soffset = -6 * 4; // -5 * 4 for C++ s->Sflags |= SFLfree; symbol_add(s); type_setty(&s->Stype,mTYvolatile | TYstruct); s = symbol_name(s_name_ecode,SCauto,type_alloc(mTYvolatile | TYint)); s->Sflags |= SFLfree; symbol_add(s); }#endif}
开发者ID:9rnsr,项目名称:dmd,代码行数:33,
示例3: symbol_calloctype *TypeAArray::toCtype(){ type *t; if (ctype) return ctype; if (0 && global.params.symdebug) { /* An associative array is represented by: * struct AArray { size_t length; void* ptr; } */ static Symbol *s; if (!s) { s = symbol_calloc("_AArray"); s->Sclass = SCstruct; s->Sstruct = struct_calloc(); s->Sstruct->Sflags |= 0; s->Sstruct->Salignsize = alignsize(); s->Sstruct->Sstructalign = global.structalign; s->Sstruct->Sstructsize = size(0); slist_add(s); Symbol *s1 = symbol_name("length", SCmember, Type::tsize_t->toCtype()); list_append(&s->Sstruct->Sfldlst, s1); Symbol *s2 = symbol_name("data", SCmember, Type::tvoidptr->toCtype()); s2->Smemoff = Type::tsize_t->size(); list_append(&s->Sstruct->Sfldlst, s2); } t = type_alloc(TYstruct); t->Ttag = (Classsym *)s; // structure tag name t->Tcount++; s->Stype = t; } else { if (global.params.symdebug == 1) { /* Generate D symbolic debug info, rather than C * Tnext: element type * Tkey: key type */ t = type_allocn(TYaarray, next->toCtype()); t->Tkey = index->toCtype(); t->Tkey->Tcount++; } else t = type_fake(TYaarray); } t->Tcount++; ctype = t; return t;}
开发者ID:ZHANITEST,项目名称:pspemu,代码行数:57,
示例4: asserttype *TypeDArray::toCtype(){ type *t; if (ctype) return ctype; if (0 && global.params.symdebug) { /* Create a C type out of: * struct _Array_T { size_t length; T* data; } */ Symbol *s; char *id; assert(next->deco); id = (char *) alloca(7 + strlen(next->deco) + 1); sprintf(id, "_Array_%s", next->deco); s = symbol_calloc(id); s->Sclass = SCstruct; s->Sstruct = struct_calloc(); s->Sstruct->Sflags |= 0; s->Sstruct->Salignsize = alignsize(); s->Sstruct->Sstructalign = global.structalign; s->Sstruct->Sstructsize = size(0); slist_add(s); Symbol *s1 = symbol_name("length", SCmember, Type::tsize_t->toCtype()); list_append(&s->Sstruct->Sfldlst, s1); Symbol *s2 = symbol_name("data", SCmember, next->pointerTo()->toCtype()); s2->Smemoff = Type::tsize_t->size(); list_append(&s->Sstruct->Sfldlst, s2); t = type_alloc(TYstruct); t->Ttag = (Classsym *)s; // structure tag name t->Tcount++; s->Stype = t; } else { if (global.params.symdebug == 1) { // Generate D symbolic debug info, rather than C t = type_allocn(TYdarray, next->toCtype()); } else t = type_fake(TYdarray); } t->Tcount++; ctype = t; return t;}
开发者ID:ZHANITEST,项目名称:pspemu,代码行数:52,
示例5: proc_env_assigncons_t* proc_env_assign(cons_t* p, environment_t*){ assert_length(p, 3); assert_type(ENVIRONMENT, car(p)); assert_type(SYMBOL, cadr(p)); const std::string name = symbol_name(cadr(p)); environment_t *e = car(p)->environment; cons_t *value = caddr(p); if ( value == NULL ) raise(runtime_exception( "Symbol is not bound in any environment: " + name)); environment_t *i = e; // search for definition and set if found for ( ; i != NULL; i = i->outer ) { if ( i->symbols.find(name) != i->symbols.end() ) { i->symbols[name] = value; return nil(); } } // only set if NOT found if ( i == NULL ) e->define(name, value); return nil();}
开发者ID:cslarsen,项目名称:mickey-scheme,代码行数:30,
示例6: set_video_mode/* * (set-video-mode <width> <height> <bits per pixel>?) or * (set-video-mode <width> <height> <bits per pixel> <mode flags>+) * * where <symbols> are: * swsurface * hwsurface * asyncblit * anyformat * hwpalette * doublebuf * fullscreen * opengl * openglblit * resizable * noframe * */cons_t* set_video_mode(cons_t* p, environment_t*){ assert_length_min(p, 2); assert_type(INTEGER, car(p)); assert_type(INTEGER, cadr(p)); // dimension int x = car(p)->integer; int y = cadr(p)->integer; // default values int bits = 32; uint32_t mode = 0;/////////////////// raise(runtime_exception("Testing"));/////////////////// // bits per pixel if ( integerp(caddr(p)) ) bits = caddr(p)->integer; // options cons_t *opts = symbolp(caddr(p))? cddr(p) : symbolp(cadddr(p))? cdddr(p) : nil();; for ( cons_t *s = opts; !nullp(s); s = cdr(s) ) { assert_type(SYMBOL, car(s)); std::string sym = symbol_name(s); int size = sizeof(sdl_flags) / sizeof(key_value_t<std::string, uint32_t>); for ( int n=0; n < size; ++n ) if ( sym == sdl_flags[n].key ) {///////////////////printf("flag %s/n", sym.c_str());printf("value %d and %d/n", sdl_flags[n].value, SDL_HWSURFACE);/////////////////// mode |= sdl_flags[n].value; goto NEXT_FLAG; } raise(runtime_exception("Unknown SDL video mode flag: " + sym));NEXT_FLAG: continue; } mode = SDL_HWSURFACE;/////////////////// printf("video mode/n"); fflush(stdout);/////////////////// SDL_Surface *screen = SDL_SetVideoMode(x, y, bits, mode); if ( screen == NULL ) raise(runtime_exception(SDL_GetError())); return pointer(new pointer_t("sdl-surface", (void*)screen));}
开发者ID:cslarsen,项目名称:mickey-scheme-historic,代码行数:78,
示例7: assertsymbol *except_gentables(){ //printf("except_gentables()/n"); if (OUREH) { // BUG: alloca() changes the stack size, which is not reflected // in the fixed eh tables. assert(!usedalloca); char name[13+5+1]; static int tmpnum; sprintf(name,"_HandlerTable%d",tmpnum++); symbol *s = symbol_name(name,SCstatic,tsint); symbol_keep(s); symbol_debug(s); except_fillInEHTable(s); outdata(s); // output the scope table objmod->ehtables(funcsym_p,funcsym_p->Ssize,s); } return NULL;}
开发者ID:Govelius,项目名称:dmd,代码行数:25,
示例8: objc_getMethVarNameSymbol *objc_getMethVarRef(const char *s, size_t len){ objc_hasSymbols = true; StringValue *sv = objc_smethVarRefTable->update(s, len); Symbol *refsymbol = (Symbol *) sv->ptrvalue; if (refsymbol == NULL) { // create data dt_t *dt = NULL; Symbol *sselname = objc_getMethVarName(s, len); dtxoff(&dt, sselname, 0, TYnptr); // find segment int seg = objc_getSegment(SEGselrefs); // create symbol static size_t selcount = 0; char namestr[42]; sprintf(namestr, "L_OBJC_SELECTOR_REFERENCES_%lu", selcount); refsymbol = symbol_name(namestr, SCstatic, type_fake(TYnptr)); refsymbol->Sdt = dt; refsymbol->Sseg = seg; outdata(refsymbol); sv->ptrvalue = refsymbol; ++selcount; } return refsymbol;}
开发者ID:Angeldude,项目名称:dmd,代码行数:31,
示例9: put_symbolvoid put_symbol(Symbol symbol, hash_table_t table){ char *name; name = symbol_name(symbol); add_key_value(name, symbol, table);}
开发者ID:Liutos,项目名称:LiutCL,代码行数:7,
示例10: mangleSymbol *Dsymbol::toSymbolX(const char *prefix, int sclass, type *t, const char *suffix){ //printf("Dsymbol::toSymbolX('%s')/n", prefix); const char *n = mangle(); assert(n); size_t nlen = strlen(n); size_t prefixlen = strlen(prefix); size_t idlen = 2 + nlen + sizeof(size_t) * 3 + prefixlen + strlen(suffix) + 1; char idbuf[20]; char *id = idbuf; if (idlen > sizeof(idbuf)) { id = (char *)malloc(idlen); assert(id); } int nwritten = sprintf(id,"_D%s%llu%s%s", n, (unsigned long long)prefixlen, prefix, suffix); assert((unsigned)nwritten < idlen); // nwritten does not include the terminating 0 char Symbol *s = symbol_name(id, sclass, t); if (id != idbuf) free(id); //printf("-Dsymbol::toSymbolX() %s/n", id); return s;}
开发者ID:andralex,项目名称:dmd,代码行数:28,
示例11: fl_defined_julia_globalvalue_t fl_defined_julia_global(value_t *args, uint32_t nargs){ argcount("defined-julia-global", nargs, 1); (void)tosymbol(args[0], "defined-julia-global"); char *name = symbol_name(args[0]); return jl_boundp(jl_current_module, jl_symbol(name)) ? FL_T : FL_F;}
开发者ID:rpruim,项目名称:julia,代码行数:7,
|