Simplify replacements

This commit is contained in:
Joey Yakimowich-Payne 2020-04-25 20:58:46 -06:00
commit 90497a99be

View file

@ -14,12 +14,14 @@ proc nothing(m: RegexMatch, s: string): string =
if m.groupsCount > 0 and m.group(0).len > 0: if m.groupsCount > 0 and m.group(0).len > 0:
return s[m.group(0)[0]] return s[m.group(0)[0]]
const gpuReg = re"^GPU_(.)" const replacements = [
const sdlReg = re"^SDL_(.)" re"^GPU_(.)",
const ttfReg = re"^TTF_(.)" re"^SDL_(.)",
const netReg = re"^SDLNet_(.)" re"^TTF_(.)",
const mixReg = re"^Mix_(.)" re"^SDLNet_(.)",
const imgReg = re"^IMG_(.)" re"^Mix_(.)",
re"^IMG_(.)"
]
const underscoreReg = re"_(.)" const underscoreReg = re"_(.)"
const EVENT_TYPES = toHashSet([ const EVENT_TYPES = toHashSet([
@ -87,7 +89,6 @@ const INT_TYPES = toHashSet([
"Sint8", "Sint8",
]) ])
# Symbol renaming examples # Symbol renaming examples
proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} = proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} =
if sym.kind == nskType: if sym.kind == nskType:
@ -106,56 +107,17 @@ proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} =
if sym.name != "_": if sym.name != "_":
sym.name = sym.name.strip(chars={'_'}).replace("__", "_") sym.name = sym.name.strip(chars={'_'}).replace("__", "_")
if sym.kind == nskProc: for rep in replacements:
try: if sym.kind == nskProc:
sym.name = sym.name.replace(gpuReg, firstLetterLower) try:
except: sym.name = sym.name.replace(rep, firstLetterLower)
discard except:
try: discard
sym.name = sym.name.replace(sdlReg, firstLetterLower) else:
except: try:
discard sym.name = sym.name.replace(rep, nothing)
try: except:
sym.name = sym.name.replace(ttfReg, firstLetterLower) discard
except:
discard
try:
sym.name = sym.name.replace(netReg, firstLetterLower)
except:
discard
try:
sym.name = sym.name.replace(mixReg, firstLetterLower)
except:
discard
try:
sym.name = sym.name.replace(imgReg, firstLetterLower)
except:
discard
else:
try:
sym.name = sym.name.replace(gpuReg, nothing)
except:
discard
try:
sym.name = sym.name.replace(sdlReg, nothing)
except:
discard
try:
sym.name = sym.name.replace(ttfReg, nothing)
except:
discard
try:
sym.name = sym.name.replace(netReg, nothing)
except:
discard
try:
sym.name = sym.name.replace(mixReg, nothing)
except:
discard
try:
sym.name = sym.name.replace(imgReg, nothing)
except:
discard
if sym.name.startsWith("SDLK_"): if sym.name.startsWith("SDLK_"):
sym.name = sym.name.replace("SDLK_", "KEYCODE_") sym.name = sym.name.replace("SDLK_", "KEYCODE_")