diff options
Diffstat (limited to 'src/Syntax/makefile.zig')
| -rw-r--r-- | src/Syntax/makefile.zig | 133 |
1 files changed, 72 insertions, 61 deletions
diff --git a/src/Syntax/makefile.zig b/src/Syntax/makefile.zig index 5c93df4..6ae7386 100644 --- a/src/Syntax/makefile.zig +++ b/src/Syntax/makefile.zig | |||
| @@ -1,78 +1,89 @@ | |||
| 1 | // zig fmt: off | 1 | // zig fmt: off |
| 2 | 2 | ||
| 3 | const es = @import("root"); | 3 | const es = @import("root"); |
| 4 | const std = @import("std"); | ||
| 4 | 5 | ||
| 6 | const ComptimeStringMap = std.ComptimeStringMap; | ||
| 7 | const Highlight = es.Highlight; | ||
| 5 | const Syntax = es.Syntax; | 8 | const Syntax = es.Syntax; |
| 6 | 9 | ||
| 10 | pub const filematch = [_][]const u8{ | ||
| 11 | "GNUmakefile", "makefile", "Makefile", | ||
| 12 | |||
| 13 | ".mk", | ||
| 14 | }; | ||
| 15 | |||
| 7 | pub const syntax = Syntax{ | 16 | pub const syntax = Syntax{ |
| 8 | .name = "Makefile", | 17 | .name = "Makefile", |
| 9 | .filematch = &[_][]const u8{ "GNUmakefile", "makefile", "Makefile", ".mk" }, | 18 | .keyword_classifier = ComptimeStringMap( |
| 10 | .keywords1 = &[_][]const u8{ | 19 | Highlight, |
| 11 | "$@", "$(@D)", "$(@F)", | 20 | Syntax.pairWith(&keywords1, .keyword1) ++ Syntax.pairWith(&keywords2, .keyword2), |
| 12 | "$%", "$(%D)", "$(%F)", | 21 | ).get, |
| 13 | "$<", "$(<D)", "$(<F)", | 22 | .singleline_comment_start = "#", |
| 14 | "$?", "$(?D)", "$(?F)", | 23 | .multiline_comment_start = null, |
| 15 | "$^", "$(^D)", "$(^F)", | 24 | .multiline_comment_end = null, |
| 16 | "$+", "$(+D)", "$(+F)", | 25 | .separators = "(){};:-@+", |
| 17 | "$|", | 26 | .flags = .{}, |
| 18 | "$*", "$(*D)", "$(*F)", | 27 | }; |
| 19 | 28 | ||
| 20 | ".DEFAULT", ".DEFAULT_GOAL", ".DELETE_ON_ERROR", ".EXPORT_ALL_VARIABLES", ".EXTRA_PREREQS", | 29 | const keywords1 = [_][]const u8{ |
| 21 | ".FEATURES", ".IGNORE", ".INCLUDE_DIRS", ".INTERMEDIATE", ".LIBPATTERNS", ".LOADED", | 30 | "$@", "$(@D)", "$(@F)", |
| 22 | ".LOW_RESOLUTION_TIME", ".NOTPARALLEL", ".ONESHELL", ".PHONY", ".POSIX", ".PRECIOUS", | 31 | "$%", "$(%D)", "$(%F)", |
| 23 | ".RECIPEPREFIX", ".SECONDARY", ".SECONDEXPANSION", ".SHELLFLAGS", ".SHELLSTATUS", ".SILENT", | 32 | "$<", "$(<D)", "$(<F)", |
| 24 | ".SUFFIXES", ".VARIABLES", | 33 | "$?", "$(?D)", "$(?F)", |
| 34 | "$^", "$(^D)", "$(^F)", | ||
| 35 | "$+", "$(+D)", "$(+F)", | ||
| 36 | "$*", "$(*D)", "$(*F)", | ||
| 37 | "$|", | ||
| 25 | 38 | ||
| 26 | "abspath", "addprefix", "addsuffix", "and", "basename", "call", "define", "dir", "else", | 39 | ".DEFAULT", ".DEFAULT_GOAL", ".DELETE_ON_ERROR", ".EXPORT_ALL_VARIABLES", ".EXTRA_PREREQS", |
| 27 | "endef", "endif", "error", "eval", "export", "file", "filter", "filter-out", "findstring", | 40 | ".FEATURES", ".IGNORE", ".INCLUDE_DIRS", ".INTERMEDIATE", ".LIBPATTERNS", ".LOADED", |
| 28 | "firstword", "flavor", "foreach", "gmk-eval", "gmk-expand", "guile", "if", "ifdef", "ifeq", | 41 | ".LOW_RESOLUTION_TIME", ".NOTPARALLEL", ".ONESHELL", ".PHONY", ".POSIX", ".PRECIOUS", |
| 29 | "ifndef", "ifneq", "include", "info", "join", "lastword", "load", "notdir", "or", "origin", | 42 | ".RECIPEPREFIX", ".SECONDARY", ".SECONDEXPANSION", ".SHELLFLAGS", ".SHELLSTATUS", ".SILENT", |
| 30 | "override", "patsubst", "private", "realpath", "shell", "sort", "strip", "subst", "suffix", | 43 | ".SUFFIXES", ".VARIABLES", |
| 31 | "undefined", "unexport", "value", "vpath", "warning", "wildcard", "word", "wordlist", | ||
| 32 | "words", | ||
| 33 | 44 | ||
| 34 | "ar", "as", "awk", "bison", "c99", "cat", "cc", "chgrp", "chmod", "chown", "cmp", "co", "cp", | 45 | "abspath", "addprefix", "addsuffix", "and", "basename", "call", "define", "dir", "else", "endef", |
| 35 | "ctangle", "cweave", "diff", "do", "done", "echo", "elif", "else", "egrep", "expr", "fc", | 46 | "endif", "error", "eval", "export", "file", "filter", "filter-out", "findstring", "firstword", |
| 36 | "for", "f77", "false", "fi", "find", "flex", "g++", "get", "grep", "gzip", "if", "in", | 47 | "flavor", "foreach", "gmk-eval", "gmk-expand", "guile", "if", "ifdef", "ifeq", "ifndef", "ifneq", |
| 37 | "install", "install-info", "ld", "ldconfig", "lex", "lint", "ln", "ls", "m2c", "make", | 48 | "include", "info", "join", "lastword", "load", "notdir", "or", "origin", "override", "patsubst", |
| 38 | "makeinfo", "mkdir", "mknod", "mv", "pc", "printf", "pwd", "ranlib", "rm", "rmdir", "sed", | 49 | "private", "realpath", "shell", "sort", "strip", "subst", "suffix", "undefined", "unexport", |
| 39 | "sleep", "sort", "tangle", "tar", "test", "tex", "texi2dvi", "then", "tr", "true", "touch", | 50 | "value", "vpath", "warning", "wildcard", "word", "wordlist", "words", |
| 40 | "weave", "yacc", | ||
| 41 | }, | ||
| 42 | .keywords2 = &[_][]const u8{ | ||
| 43 | "AR", "AS", "AWK", "BISON", "CAT", "CC", "CHGRP", "CHMOD", "CHOWN", "CMP", "CO", "CP", "CPP", | ||
| 44 | "CTANGLE", "CWEAVE", "CXX", "DIFF", "ECHO", "EGREP", "EXPR", "FALSE", "FC", "FIND", "FLEX", | ||
| 45 | "GET", "GREP", "GZIP", "INSTALL", "INSTALL_DATA", "INSTALL_INFO", "INSTALL_PROGRAM", "LD", | ||
| 46 | "LDCONFIG", "LEX", "LINT", "LN", "LS", "M2C", "MAKE", "MAKEINFO", "MKDIR", "MKNOD", "MV", | ||
| 47 | "RM", "PC", "PRINTF", "PWD", "RANLIB", "RMDIR", "SED", "SLEEP", "SORT", "TANGLE", "TAR", | ||
| 48 | "TEST", "TEX", "TEXI2DVI", "TOUCH", "TR", "TRUE", "WEAVE", "YACC", | ||
| 49 | 51 | ||
| 50 | "ARFLAGS", "BISONFLAGS", "ASFLAGS", "CFLAGS", "COFLAGS", "CPPFLAGS", "CXXFLAGS", "FFLAGS", | 52 | "ar", "as", "awk", "bison", "c99", "cat", "cc", "chgrp", "chmod", "chown", "cmp", "co", "cp", |
| 51 | "GFLAGS", "LDFLAGS", "LDLIBS", "LFLAGS", "LINTFLAGS", "MAKEFLAGS", "MFLAGS", "PFLAGS", | 53 | "ctangle", "cweave", "diff", "do", "done", "echo", "elif", "else", "egrep", "expr", "fc", "for", |
| 52 | "REALFLAGS", "YFLAGS", | 54 | "f77", "false", "fi", "find", "flex", "g++", "get", "grep", "gzip", "if", "in", "install", |
| 55 | "install-info", "ld", "ldconfig", "lex", "lint", "ln", "ls", "m2c", "make", "makeinfo", "mkdir", | ||
| 56 | "mknod", "mv", "pc", "printf", "pwd", "ranlib", "rm", "rmdir", "sed", "sleep", "sort", "tangle", | ||
| 57 | "tar", "test", "tex", "texi2dvi", "then", "tr", "true", "touch", "weave", "yacc", | ||
| 58 | }; | ||
| 53 | 59 | ||
| 54 | "COMSPEC", "CURDIR", "DESTDIR", "GPATH", "LOADLIBES", "MAKECMDGOALS", "MAKEFILES", | 60 | const keywords2 = [_][]const u8{ |
| 55 | "MAKEFILE_LIST", "MAKELEVEL", "MAKEOVERRIDES", "MAKESHELL", "MAKE_HOST", "MAKE_RESTARTS", | 61 | "AR", "AS", "AWK", "BISON", "CAT", "CC", "CHGRP", "CHMOD", "CHOWN", "CMP", "CO", "CP", "CPP", |
| 56 | "MAKE_TERMERR", "MAKE_TERMOUT", "MAKE_VERSION", "OUTPUT_OPTION", "SHELL", "SUFFIXES", | 62 | "CTANGLE", "CWEAVE", "CXX", "DIFF", "ECHO", "EGREP", "EXPR", "FALSE", "FC", "FIND", "FLEX", |
| 57 | "VPATH", | 63 | "GET", "GREP", "GZIP", "INSTALL", "INSTALL_DATA", "INSTALL_INFO", "INSTALL_PROGRAM", "LD", |
| 64 | "LDCONFIG", "LEX", "LINT", "LN", "LS", "M2C", "MAKE", "MAKEINFO", "MKDIR", "MKNOD", "MV", "RM", | ||
| 65 | "PC", "PRINTF", "PWD", "RANLIB", "RMDIR", "SED", "SLEEP", "SORT", "TANGLE", "TAR", "TEST", "TEX", | ||
| 66 | "TEXI2DVI", "TOUCH", "TR", "TRUE", "WEAVE", "YACC", | ||
| 58 | 67 | ||
| 59 | "bindir", "datadir", "datarootdir", "docdir", "dvidir", "exec_prefix", "htmldir", | 68 | "ARFLAGS", "BISONFLAGS", "ASFLAGS", "CFLAGS", "COFLAGS", "CPPFLAGS", "CXXFLAGS", "FFLAGS", |
| 60 | "includedir", "infodir", "libexecdir", "libdir", "lispdir", "localedir", "localstatedir", | 69 | "GFLAGS", "LDFLAGS", "LDLIBS", "LFLAGS", "LINTFLAGS", "MAKEFLAGS", "MFLAGS", "PFLAGS", |
| 61 | "mandir", "manext", "man1dir", "man1ext", "man2dir", "man2ext", "man3dir", "man3ext", | 70 | "REALFLAGS", "YFLAGS", |
| 62 | "man4dir", "man4ext", "man5dir", "man5ext", "man6dir", "man6ext", "man7dir", "man7ext", | ||
| 63 | "man8dir", "man8ext", "manndir", "mannext", "oldincludedir", "pdfdir", "psdir", "prefix", | ||
| 64 | "runstatedir", "sbindir", "srcdir", "sharedstatedir", "sysconfdir", | ||
| 65 | 71 | ||
| 66 | "all", "check", "clean", "dist", "distclean", "dvi", "html", "info", "install", | 72 | "COMSPEC", "CURDIR", "DESTDIR", "GPATH", "LOADLIBES", "MAKECMDGOALS", "MAKEFILES", |
| 67 | "install-dvi", "install-html", "install-pdf", "install-ps", "install-strip", "installcheck", | 73 | "MAKEFILE_LIST", "MAKELEVEL", "MAKEOVERRIDES", "MAKESHELL", "MAKE_HOST", "MAKE_RESTARTS", |
| 68 | "installdirs", "maintainer-clean", "mostlyclean", "pdf", "ps", "uninstall", "TAGS", | 74 | "MAKE_TERMERR", "MAKE_TERMOUT", "MAKE_VERSION", "OUTPUT_OPTION", "SHELL", "SUFFIXES", "VPATH", |
| 69 | 75 | ||
| 70 | "NORMAL_INSTALL", "NORMAL_UNINSTALL", "POST_INSTALL", "POST_UNINSTALL", "PRE_INSTALL", | 76 | "bindir", "datadir", "datarootdir", "docdir", "dvidir", "exec_prefix", "htmldir", "includedir", |
| 71 | "PRE_UNINSTALL" | 77 | "infodir", "libexecdir", "libdir", "lispdir", "localedir", "localstatedir", "mandir", "manext", |
| 72 | }, | 78 | "man1dir", "man1ext", "man2dir", "man2ext", "man3dir", "man3ext", "man4dir", "man4ext", |
| 73 | .singleline_comment_start = "#", | 79 | "man5dir", "man5ext", "man6dir", "man6ext", "man7dir", "man7ext", "man8dir", "man8ext", |
| 74 | .multiline_comment_start = null, | 80 | "manndir", "mannext", "oldincludedir", "pdfdir", "psdir", "prefix", "runstatedir", "sbindir", |
| 75 | .multiline_comment_end = null, | 81 | "srcdir", "sharedstatedir", "sysconfdir", |
| 76 | .separators = "(){};:-@+", | 82 | |
| 77 | .flags = .{}, | 83 | "all", "check", "clean", "dist", "distclean", "dvi", "html", "info", "install", "install-dvi", |
| 84 | "install-html", "install-pdf", "install-ps", "install-strip", "installcheck", "installdirs", | ||
| 85 | "maintainer-clean", "mostlyclean", "pdf", "ps", "uninstall", "TAGS", | ||
| 86 | |||
| 87 | "NORMAL_INSTALL", "NORMAL_UNINSTALL", "POST_INSTALL", "POST_UNINSTALL", "PRE_INSTALL", | ||
| 88 | "PRE_UNINSTALL", | ||
| 78 | }; | 89 | }; |