您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ symbolTable函数代码示例

51自学网 2021-06-03 08:36:28
  C++
这篇教程C++ symbolTable函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中symbolTable函数的典型用法代码示例。如果您正苦于以下问题:C++ symbolTable函数的具体用法?C++ symbolTable怎么用?C++ symbolTable使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

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

示例1: ASSERT

inline bool JSLexicalEnvironment::symbolTablePut(ExecState* exec, PropertyName propertyName, JSValue value, bool shouldThrow){    VM& vm = exec->vm();    ASSERT(!Heap::heap(value) || Heap::heap(value) == Heap::heap(this));        WriteBarrierBase<Unknown>* reg;    WatchpointSet* set;    {        GCSafeConcurrentJITLocker locker(symbolTable()->m_lock, exec->vm().heap);        SymbolTable::Map::iterator iter = symbolTable()->find(locker, propertyName.uid());        if (iter == symbolTable()->end(locker))            return false;        ASSERT(!iter->value.isNull());        if (iter->value.isReadOnly()) {            if (shouldThrow)                throwTypeError(exec, StrictModeReadonlyPropertyWriteError);            return true;        }        ScopeOffset offset = iter->value.scopeOffset();        // Defend against the inspector asking for a var after it has been optimized out.        if (!isValid(offset))            return false;        set = iter->value.watchpointSet();        reg = &variableAt(offset);    }    reg->set(vm, this, value);    if (set)        set->invalidate(VariableWriteFireDetail(this, propertyName)); // Don't mess around - if we had found this statically, we would have invalidated it.    return true;}
开发者ID:B-Stefan,项目名称:webkit,代码行数:30,


示例2: typeCheck

void MemberCallExpressionAST::typeCheck(TypeChecker& checker) {	mAccessExpression->typeCheck(checker);	if (auto varRef = std::dynamic_pointer_cast<VariableReferenceExpressionAST>(mAccessExpression)) {		auto varSymbol = std::dynamic_pointer_cast<VariableSymbol>(mSymbolTable->find(varRef->name()));		auto varRefType = checker.findType(varSymbol->variableType());		std::string objName = varRefType->name();		if (!checker.objectExists(objName)) {			checker.typeError(varRefType->name() + " is not an object type.");		}		auto classSymbol = std::dynamic_pointer_cast<ClassSymbol>(Helpers::findSymbolInNamespace(mSymbolTable, objName));		mMemberCallExpression->setCallTable(classSymbol->symbolTable());		mMemberCallExpression->generateSymbols(checker.binder(), mSymbolTable);		mMemberCallExpression->typeCheck(checker);	} else {		auto varRefType = mAccessExpression->expressionType(checker);		std::string objName = varRefType->name();		if (!checker.objectExists(objName)) {			checker.typeError(varRefType->name() + " is not an object type.");		}		auto classSymbol = std::dynamic_pointer_cast<ClassSymbol>(Helpers::findSymbolInNamespace(mSymbolTable, objName));		mMemberCallExpression->setCallTable(classSymbol->symbolTable());		mMemberCallExpression->generateSymbols(checker.binder(), mSymbolTable);		mMemberCallExpression->typeCheck(checker);	}}
开发者ID:svenslaggare,项目名称:StackLang,代码行数:32,


示例3: visitIfNeeded

void JSGlobalObject::visitChildren(SlotVisitor& visitor){    JSVariableObject::visitChildren(visitor);    visitIfNeeded(visitor, &m_globalScopeChain);    visitIfNeeded(visitor, &m_methodCallDummy);    visitIfNeeded(visitor, &m_regExpConstructor);    visitIfNeeded(visitor, &m_errorConstructor);    visitIfNeeded(visitor, &m_evalErrorConstructor);    visitIfNeeded(visitor, &m_rangeErrorConstructor);    visitIfNeeded(visitor, &m_referenceErrorConstructor);    visitIfNeeded(visitor, &m_syntaxErrorConstructor);    visitIfNeeded(visitor, &m_typeErrorConstructor);    visitIfNeeded(visitor, &m_URIErrorConstructor);    visitIfNeeded(visitor, &m_evalFunction);    visitIfNeeded(visitor, &m_callFunction);    visitIfNeeded(visitor, &m_applyFunction);    visitIfNeeded(visitor, &m_objectPrototype);    visitIfNeeded(visitor, &m_functionPrototype);    visitIfNeeded(visitor, &m_arrayPrototype);    visitIfNeeded(visitor, &m_booleanPrototype);    visitIfNeeded(visitor, &m_stringPrototype);    visitIfNeeded(visitor, &m_numberPrototype);    visitIfNeeded(visitor, &m_datePrototype);    visitIfNeeded(visitor, &m_regExpPrototype);    visitIfNeeded(visitor, &m_argumentsStructure);    visitIfNeeded(visitor, &m_arrayStructure);    visitIfNeeded(visitor, &m_booleanObjectStructure);    visitIfNeeded(visitor, &m_callbackConstructorStructure);    visitIfNeeded(visitor, &m_callbackFunctionStructure);    visitIfNeeded(visitor, &m_callbackObjectStructure);    visitIfNeeded(visitor, &m_dateStructure);    visitIfNeeded(visitor, &m_emptyObjectStructure);    visitIfNeeded(visitor, &m_nullPrototypeObjectStructure);    visitIfNeeded(visitor, &m_errorStructure);    visitIfNeeded(visitor, &m_functionStructure);    visitIfNeeded(visitor, &m_numberObjectStructure);    visitIfNeeded(visitor, &m_regExpMatchesArrayStructure);    visitIfNeeded(visitor, &m_regExpStructure);    visitIfNeeded(visitor, &m_stringObjectStructure);    visitIfNeeded(visitor, &m_internalFunctionStructure);    if (m_registerArray) {        // Outside the execution of global code, when our variables are torn off,        // we can mark the torn-off array.        visitor.appendValues(m_registerArray.get(), m_registerArraySize);    } else if (m_registers) {        // During execution of global code, when our variables are in the register file,        // the symbol table tells us how many variables there are, and registers        // points to where they end, and the registers used for execution begin.        visitor.appendValues(m_registers - symbolTable().size(), symbolTable().size());    }}
开发者ID:1d10t,项目名称:phantomjs,代码行数:57,


示例4: symbolTable

void JSVariableObject::getOwnPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode){    SymbolTable::const_iterator end = symbolTable().end();    for (SymbolTable::const_iterator it = symbolTable().begin(); it != end; ++it) {        if (!(it->second.getAttributes() & DontEnum) || (mode == IncludeDontEnumProperties))            propertyNames.add(Identifier(exec, it->first.get()));    }        JSObject::getOwnPropertyNames(exec, propertyNames, mode);}
开发者ID:Andersbakken,项目名称:WebKit-mirror,代码行数:10,


示例5: symbolTable

void JSActivation::getOwnPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode){    SymbolTable::const_iterator end = symbolTable().end();    for (SymbolTable::const_iterator it = symbolTable().begin(); it != end; ++it) {        ASSERT(it->second.getIndex() < static_cast<int>(d()->functionExecutable->capturedVariableCount()));        if (!(it->second.getAttributes() & DontEnum) || (mode == IncludeDontEnumProperties))            propertyNames.add(Identifier(exec, it->first.get()));    }    // Skip the JSVariableObject implementation of getOwnPropertyNames    JSObject::getOwnPropertyNames(exec, propertyNames, mode);}
开发者ID:Andersbakken,项目名称:WebKit-mirror,代码行数:11,


示例6: symbolTable

FrSymbol *FrTextSpans::makeSymbol(FrSymbol *symbol) const{   if (FrSymbolTable::current() != symbolTable() && symbol)      {      FrSymbolTable *symtab = symbolTable()->select() ;      FrSymbol *sym = FrSymbolTable::add(symbol->symbolName()) ;      symtab->select() ;      return sym ;      }   else      return symbol ;}
开发者ID:ralfbrown,项目名称:framepac,代码行数:12,


示例7: symbolTable

void JSActivation::getOwnPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode){    SymbolTable::const_iterator end = symbolTable().end();    for (SymbolTable::const_iterator it = symbolTable().begin(); it != end; ++it) {        if (it->second.getAttributes() & DontEnum && mode != IncludeDontEnumProperties)            continue;        if (it->second.getIndex() >= m_numCapturedVars)            continue;        propertyNames.add(Identifier(exec, it->first.get()));    }    // Skip the JSVariableObject implementation of getOwnPropertyNames    JSObject::getOwnPropertyNames(exec, propertyNames, mode);}
开发者ID:sysrqb,项目名称:chromium-src,代码行数:13,


示例8: addRegisters

void JSGlobalObject::addStaticGlobals(GlobalPropertyInfo* globals, int count){    addRegisters(count);    for (int i = 0; i < count; ++i) {        GlobalPropertyInfo& global = globals[i];        ASSERT(global.attributes & DontDelete);                int index = symbolTable()->size();        SymbolTableEntry newEntry(index, global.attributes);        symbolTable()->add(global.identifier.impl(), newEntry);        registerAt(index).set(vm(), this, global.value);    }}
开发者ID:3163504123,项目名称:phantomjs,代码行数:14,


示例9: ASSERT

inline bool JSActivation::symbolTablePutWithAttributes(const Identifier& propertyName, JSValue value, unsigned attributes){    ASSERT(!Heap::heap(value) || Heap::heap(value) == Heap::heap(this));        SymbolTable::iterator iter = symbolTable().find(propertyName.impl());    if (iter == symbolTable().end())        return false;    SymbolTableEntry& entry = iter->second;    ASSERT(!entry.isNull());    if (entry.getIndex() >= static_cast<int>(d()->functionExecutable->capturedVariableCount()))        return false;    entry.setAttributes(attributes);    registerAt(entry.getIndex()) = value;    return true;}
开发者ID:Andersbakken,项目名称:WebKit-mirror,代码行数:15,


示例10: deleteProperty

bool JSVariableObject::deleteProperty(ExecState* exec, const Identifier& propertyName){    if (symbolTable().contains(propertyName.impl()))        return false;    return JSObject::deleteProperty(exec, propertyName);}
开发者ID:Andersbakken,项目名称:WebKit-mirror,代码行数:7,


示例11: ASSERT

inline bool JSActivation::symbolTablePutWithAttributes(JSGlobalData& globalData, const Identifier& propertyName, JSValue value, unsigned attributes){    ASSERT(!Heap::heap(value) || Heap::heap(value) == Heap::heap(this));        SymbolTable::iterator iter = symbolTable().find(propertyName.impl());    if (iter == symbolTable().end())        return false;    SymbolTableEntry& entry = iter->second;    ASSERT(!entry.isNull());    if (entry.getIndex() >= m_numCapturedVars)        return false;    entry.setAttributes(attributes);    registerAt(entry.getIndex()).set(globalData, this, value);    return true;}
开发者ID:sysrqb,项目名称:chromium-src,代码行数:16,


示例12: growRegisterArray

void QScriptStaticScopeObject::addSymbolTableProperty(const JSC::Identifier& name, JSC::JSValue value, unsigned attributes){    int index = growRegisterArray(1);    JSC::SymbolTableEntry newEntry(index, attributes | JSC::DontDelete);    symbolTable().add(name.ustring().rep(), newEntry);    registerAt(index) = value;}
开发者ID:Drakey83,项目名称:steamlink-sdk,代码行数:7,


示例13: deleteProperty

bool JSVariableObject::deleteProperty(ExecState* exec, const Identifier& propertyName, bool checkDontDelete){    if (symbolTable().contains(propertyName.ustring().rep()))        return false;    return JSObject::deleteProperty(exec, propertyName, checkDontDelete);}
开发者ID:Mr-Kumar-Abhishek,项目名称:qt,代码行数:7,


示例14: navigationTest

    void navigationTest()    {        ElfFileSet s;        s.addFile(QStringLiteral(BINDIR "elf-dissector"));        QVERIFY(s.size() > 1);        ElfModel model;        model.setFileSet(&s);        auto file = s.file(0);        auto symTab = file->symbolTable();        for (uint i = 0; i < symTab->header()->entryCount(); ++i) {            auto idx = model.indexForNode(symTab->entry(i));            QVERIFY(idx.isValid());            if (strcmp(symTab->entry(i)->name(), "") == 0)                continue;            QCOMPARE(idx.data(Qt::DisplayRole).toString(), QString(symTab->entry(i)->name()));            auto url = idx.data(ElfModel::NodeUrl).toUrl();            QVERIFY(url.isValid());            QVERIFY(!url.path().isEmpty());            QVERIFY(!url.scheme().isEmpty());            auto idx2 = model.indexForUrl(url);            QCOMPARE(idx, idx2);        }    }
开发者ID:KDE,项目名称:elf-dissector,代码行数:26,


示例15: symbolTable

const ElfSymbol *ElfImage::findSymbol(uint64_t address, bool findNearIfPossible) const {  const ElfSymbolTable *symTab = symbolTable();  if (symTab)    return symTab->find(address, findNearIfPossible);  else    return nullptr;}
开发者ID:kito-cheng,项目名称:libelfxx,代码行数:8,


示例16: locker

JSGlobalObject::NewGlobalVar JSGlobalObject::addGlobalVar(const Identifier& ident, ConstantMode constantMode){    ConcurrentJITLocker locker(symbolTable()->m_lock);    int index = symbolTable()->size(locker);    SymbolTableEntry newEntry(index, (constantMode == IsConstant) ? ReadOnly : 0);    if (constantMode == IsVariable)        newEntry.prepareToWatch();    SymbolTable::Map::AddResult result = symbolTable()->add(locker, ident.impl(), newEntry);    if (result.isNewEntry)        addRegisters(1);    else        index = result.iterator->value.getIndex();    NewGlobalVar var;    var.registerNumber = index;    var.set = result.iterator->value.watchpointSet();    return var;}
开发者ID:WebKitNix,项目名称:webkitnix,代码行数:17,


示例17: symbolTable

bool JSVariableObject::getPropertyAttributes(ExecState* exec, const Identifier& propertyName, unsigned& attributes) const{    SymbolTableEntry entry = symbolTable().get(propertyName.ustring().rep());    if (!entry.isNull()) {        attributes = entry.getAttributes() | DontDelete;        return true;    }    return JSObject::getPropertyAttributes(exec, propertyName, attributes);}
开发者ID:acss,项目名称:owb-mirror,代码行数:9,


示例18:

const Symbol*Symbol::findSymbol(Name name) const{    if (symbolTable())    {        if (Symbol *symbol = symbolTable()->find(name))        {#if 0            if (symbol->symbolState() != Symbol::ResolvedState)            {                symbol->resolve();            }#endif                        return symbol;        }    }        return 0;}
开发者ID:jimhourihan,项目名称:mu,代码行数:20,


示例19: Data

/*!    Creates a static scope object with a fixed set of undeletable properties.    It's not possible to add new properties to the object after construction.*/QScriptStaticScopeObject::QScriptStaticScopeObject(WTF::NonNullPassRefPtr<JSC::Structure> structure,                                                   int propertyCount, const PropertyInfo* props)    : JSC::JSVariableObject(structure, new Data(/*canGrow=*/false)){    int index = growRegisterArray(propertyCount);    for (int i = 0; i < propertyCount; ++i, --index) {        const PropertyInfo& prop = props[i];        JSC::SymbolTableEntry entry(index, prop.attributes);        symbolTable().add(prop.identifier.ustring().rep(), entry);        registerAt(index) = prop.value;    }}
开发者ID:Drakey83,项目名称:steamlink-sdk,代码行数:17,


示例20: ASSERT

inline bool JSActivation::symbolTablePutWithAttributes(VM& vm, PropertyName propertyName, JSValue value, unsigned attributes){    ASSERT(!Heap::heap(value) || Heap::heap(value) == Heap::heap(this));        WriteBarrierBase<Unknown>* reg;    {        ConcurrentJITLocker locker(symbolTable()->m_lock);        SymbolTable::Map::iterator iter = symbolTable()->find(locker, propertyName.publicName());        if (iter == symbolTable()->end(locker))            return false;        SymbolTableEntry& entry = iter->value;        ASSERT(!entry.isNull());        if (!isValid(entry))            return false;                entry.setAttributes(attributes);        reg = &registerAt(entry.getIndex());    }    reg->set(vm, this, value);    return true;}
开发者ID:604339917,项目名称:JavaScriptCore-iOS-1,代码行数:21,


示例21: symbolTable

inline bool JSLexicalEnvironment::symbolTableGet(PropertyName propertyName, PropertySlot& slot){    SymbolTableEntry entry = symbolTable()->inlineGet(propertyName.uid());    if (entry.isNull())        return false;    // Defend against the inspector asking for a var after it has been optimized out.    if (!isValid(entry))        return false;    slot.setValue(this, DontEnum, registerAt(entry.getIndex()).get());    return true;}
开发者ID:AndriyKalashnykov,项目名称:webkit,代码行数:13,


示例22: symbolTable

inline bool JSActivation::symbolTableGet(PropertyName propertyName, PropertySlot& slot){    SymbolTableEntry entry = symbolTable()->inlineGet(propertyName.publicName());    if (entry.isNull())        return false;    // Defend against the inspector asking for a var after it has been optimized out.    if (isTornOff() && !isValid(entry))        return false;    slot.setValue(this, DontEnum, registerAt(entry.getIndex()).get());    return true;}
开发者ID:604339917,项目名称:JavaScriptCore-iOS-1,代码行数:13,


示例23: verify

void MemberAccessAST::verify(SemanticVerifier& verifier) {	mAccessExpression->verify(verifier);	mMemberExpression->verify(verifier);		if (getField(verifier.typeChecker()).accessModifier() == AccessModifiers::Private) {		auto className = mAccessExpression->expressionType(verifier.typeChecker())->name();		auto classSymbol = std::dynamic_pointer_cast<ClassSymbol>(mSymbolTable->find(className));		if (!classSymbol->symbolTable()->containsTable(mSymbolTable)) {			verifier.semanticError("Cannot access private field of class " + className + ".");		}	}}
开发者ID:svenslaggare,项目名称:StackLang,代码行数:13,



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


C++ symbol_add函数代码示例
C++ symbol函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。