UNPKG

967 BJavaScriptView Raw
1Prism.languages.makefile = {
2 'comment': {
3 pattern: /(^|[^\\])#(?:\\[\s\S]|.)*/,
4 lookbehind: true
5 },
6 'string': /(["'])(?:\\[\s\S]|(?!\1)[^\\\r\n])*\1/,
7
8 // Built-in target names
9 'builtin': /\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,
10
11 // Targets
12 'symbol': {
13 pattern: /^[^:=\r\n]+(?=\s*:(?!=))/m,
14 inside: {
15 'variable': /\$+(?:[^(){}:#=\s]+|(?=[({]))/
16 }
17 },
18 'variable': /\$+(?:[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,
19
20 'keyword': [
21 // Directives
22 /\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|-?include|override|private|sinclude|undefine|unexport|vpath)\b/,
23 // Functions
24 {
25 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])/,
26 lookbehind: true
27 }
28 ],
29 'operator': /(?:::|[?:+!])?=|[|@]/,
30 'punctuation': /[:;(){}]/
31};
\No newline at end of file