12345678910111213141516171819202122232425262728293031 |
- Prism.languages.makefile = {
- 'comment': {
- pattern: /(^|[^\\])#(?:\\(?:\r\n|[\s\S])|.)*/,
- lookbehind: true
- },
- 'string': /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
- // 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': /[:;(){}]/
- };
|