svoid tok_numberFunctionNames(LS tok) { int n = l(tok); new L reToks; for (int i = 1; i < n-2; i += 2) { S number, id; if (isInteger(number = tok.get(i)) && empty(tok.get(i+1)) && isIdentifier(id = tok.get(i+2))) pcall { continue if eq(number, "0") && swicOneOf(id, "x", "b"); // skip hex/binary constants continue if eqic(id, "f"); // skip float constants // skip exponential floating-point constants (e.g. 1e6) if (swic(id, "e") && (l(id) == 1 && empty(get(tok, i+3)) && eqGet(tok, i+4, "-") || startsWithInteger(substring(id, 1)))) continue; // skip numbers with underscores like 1_000 if (startsWith(id, "_")) continue; replaceTokens_reTokLater(tok, reToks, i, i+3, camelCase(numberToEnglish(parseLong(number))) + firstToUpper(id)); } } reTok_multi(tok, reToks); }