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