mirror of
https://github.com/gbdev/rgbds.git
synced 2026-06-16 13:42:12 +00:00
Factor out repeated expandedSymName logic
This commit is contained in:
+8
-4
@@ -286,6 +286,10 @@ static bool isAutoScoped(std::string const &symName) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static std::string expandedSymName(std::string const &symName) {
|
||||||
|
return isAutoScoped(symName) ? globalScope->name + symName : symName;
|
||||||
|
}
|
||||||
|
|
||||||
Symbol *sym_FindExactSymbol(std::string const &symName) {
|
Symbol *sym_FindExactSymbol(std::string const &symName) {
|
||||||
assumeAlreadyExpanded(symName);
|
assumeAlreadyExpanded(symName);
|
||||||
|
|
||||||
@@ -294,7 +298,7 @@ Symbol *sym_FindExactSymbol(std::string const &symName) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Symbol *sym_FindScopedSymbol(std::string const &symName) {
|
Symbol *sym_FindScopedSymbol(std::string const &symName) {
|
||||||
return sym_FindExactSymbol(isAutoScoped(symName) ? globalScope->name + symName : symName);
|
return sym_FindExactSymbol(expandedSymName(symName));
|
||||||
}
|
}
|
||||||
|
|
||||||
Symbol *sym_FindScopedValidSymbol(std::string const &symName) {
|
Symbol *sym_FindScopedValidSymbol(std::string const &symName) {
|
||||||
@@ -366,7 +370,7 @@ bool sym_IsPurgedExact(std::string const &symName) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool sym_IsPurgedScoped(std::string const &symName) {
|
bool sym_IsPurgedScoped(std::string const &symName) {
|
||||||
return sym_IsPurgedExact(isAutoScoped(symName) ? globalScope->name + symName : symName);
|
return sym_IsPurgedExact(expandedSymName(symName));
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t sym_GetRSValue() {
|
int32_t sym_GetRSValue() {
|
||||||
@@ -558,7 +562,7 @@ Symbol *sym_AddLocalLabel(std::string const &symName) {
|
|||||||
// The symbol name should be local, qualified or not
|
// The symbol name should be local, qualified or not
|
||||||
assume(symName.find('.') != std::string::npos);
|
assume(symName.find('.') != std::string::npos);
|
||||||
|
|
||||||
Symbol *sym = addLabel(isAutoScoped(symName) ? globalScope->name + symName : symName);
|
Symbol *sym = addLabel(expandedSymName(symName));
|
||||||
|
|
||||||
if (sym) {
|
if (sym) {
|
||||||
localScope = sym;
|
localScope = sym;
|
||||||
@@ -678,7 +682,7 @@ Symbol *sym_Ref(std::string const &symName) {
|
|||||||
Symbol *sym = sym_FindScopedSymbol(symName);
|
Symbol *sym = sym_FindScopedSymbol(symName);
|
||||||
|
|
||||||
if (!sym) {
|
if (!sym) {
|
||||||
sym = &createSymbol(isAutoScoped(symName) ? globalScope->name + symName : symName);
|
sym = &createSymbol(expandedSymName(symName));
|
||||||
sym->type = SYM_REF;
|
sym->type = SYM_REF;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user