• Home
  • Raw
  • Download

Lines Matching full:symbol

17     const Symbol* symbol = this->find(name);  in isType()  local
18 return symbol && symbol->is<Type>(); in isType()
28 const Symbol* SymbolTable::findBuiltinSymbol(std::string_view name) const { in findBuiltinSymbol()
35 Symbol* SymbolTable::lookup(const SymbolKey& key) const { in lookup()
36 Symbol** symbolPPtr = fSymbols.find(key); in lookup()
41 // The symbol wasn't found; recurse into the parent symbol table. in lookup()
45 void SymbolTable::renameSymbol(Symbol* symbol, std::string_view newName) { in renameSymbol() argument
46 if (symbol->is<FunctionDeclaration>()) { in renameSymbol()
48 for (FunctionDeclaration* fn = &symbol->as<FunctionDeclaration>(); fn != nullptr; in renameSymbol()
54 symbol->setName(newName); in renameSymbol()
57 this->addWithoutOwnership(symbol); in renameSymbol()
66 void SymbolTable::addWithoutOwnership(Symbol* symbol) { in addWithoutOwnership() argument
67 auto key = MakeSymbolKey(symbol->name()); in addWithoutOwnership()
70 if (symbol->is<FunctionDeclaration>()) { in addWithoutOwnership()
72 Symbol* existingSymbol = this->lookup(key); in addWithoutOwnership()
76 symbol->as<FunctionDeclaration>().setNextOverload(existingDecl); in addWithoutOwnership()
77 fSymbols[key] = symbol; in addWithoutOwnership()
83 // We are attempting to declare a symbol at global scope that already exists in a parent in addWithoutOwnership()
84 // module. This is a duplicate symbol and should be rejected. in addWithoutOwnership()
86 Symbol*& refInSymbolTable = fSymbols[key]; in addWithoutOwnership()
89 refInSymbolTable = symbol; in addWithoutOwnership()
94 ThreadContext::ReportError("symbol '" + std::string(symbol->name()) + "' was already defined", in addWithoutOwnership()
95 symbol->fPosition); in addWithoutOwnership()
98 void SymbolTable::injectWithoutOwnership(Symbol* symbol) { in injectWithoutOwnership() argument
99 auto key = MakeSymbolKey(symbol->name()); in injectWithoutOwnership()
100 fSymbols[key] = symbol; in injectWithoutOwnership()
107 // If this is a builtin type, we add it as high as possible in the symbol table tree (at the in addArrayDimension()
112 // Reuse an existing array type with this name if one already exists in our symbol table. in addArrayDimension()
114 if (const Symbol* existingType = this->find(arrayName)) { in addArrayDimension()
117 // Add a new array type to the symbol table. in addArrayDimension()