micro/runtime/syntax/makefile.yaml
2017-03-21 14:55:22 -04:00

24 lines
1 KiB
YAML

filetype: makefile
detect:
filename: "([Mm]akefile|\\.ma?k)$"
header: "^#!.*/(env +)?[bg]?make( |$)"
rules:
- preproc: "\\b(ifeq|ifdef|ifneq|ifndef|else|endif)\\b"
- preproc: "^(export|include|override)\\b"
- symbol.operator: "^[^:= ]+:"
- symbol.operator: "[=,%]|\\+=|\\?=|:=|&&|\\|\\|"
- statement: "\\$\\((abspath|addprefix|addsuffix|and|basename|call|dir)[[:space:]]"
- statement: "\\$\\((error|eval|filter|filter-out|findstring|firstword)[[:space:]]"
- statement: "\\$\\((flavor|foreach|if|info|join|lastword|notdir|or)[[:space:]]"
- statement: "\\$\\((origin|patsubst|realpath|shell|sort|strip|suffix)[[:space:]]"
- statement: "\\$\\((value|warning|wildcard|word|wordlist|words)[[:space:]]"
- identifier: "^.+:"
- identifier: "[()$]"
- constant.string: "\"(\\\\.|[^\"])*\"|'(\\\\.|[^'])*'"
- identifier: "\\$+(\\{[^} ]+\\}|\\([^) ]+\\))"
- identifier: "\\$[@^<*?%|+]|\\$\\([@^<*?%+-][DF]\\)"
- identifier: "\\$\\$|\\\\.?"
- comment: "(^|[[:space:]])#([^{].*)?$"
- comment: "^ @#.*"