const highlight = (map, source) => { let output = source; output = output.replace(/("[^"]+")/g, `$1`) for (let keyword of map.keywords) { output = output.replaceAll(keyword, `${keyword}`) } for (let keyword of map.altkeywords) { output = output.replaceAll(keyword, `${keyword}`) } // TODO: predicate for function calls to be replaced // for (let func in map.functions) { // output = output.replace(func, `${func}`) // } output = output.replace(/(\d+)/g, `$1`) return output; } const maps = { cpp: { keywords: [ "auto", "void", "struct" ], altkeywords: [ "const", "static", "int", "std::string", "std::unique_ptr", "char", ], } };