34 lines
1 KiB
JavaScript
34 lines
1 KiB
JavaScript
|
Prism.languages.makefile = {
|
||
|
'comment': {
|
||
|
pattern: /(^|[^\\])#(?:\\(?:\r\n|[\s\S])|.)*/,
|
||
|
lookbehind: true
|
||
|
},
|
||
|
'string': {
|
||
|
pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
|
||
|
greedy: true
|
||
|
},
|
||
|
|
||
|
// Built-in target names
|
||
|
'builtin': /\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,
|
||
|
|
||
|
// Targets
|
||
|
'symbol': {
|
||
|
pattern: /^[^:=\r\n]+(?=\s*:(?!=))/m,
|
||
|
inside: {
|
||
|
'variable': /\$+(?:[^(){}:#=\s]+|(?=[({]))/
|
||
|
}
|
||
|
},
|
||
|
'variable': /\$+(?:[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,
|
||
|
|
||
|
'keyword': [
|
||
|
// Directives
|
||
|
/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,
|
||
|
// Functions
|
||
|
{
|
||
|
pattern: /(\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \t])/,
|
||
|
lookbehind: true
|
||
|
}
|
||
|
],
|
||
|
'operator': /(?:::|[?:+!])?=|[|@]/,
|
||
|
'punctuation': /[:;(){}]/
|
||
|
};
|