]> luflow.net public git repositories - flow-web.git/blob - static/highlight/languages/dos.js
Initial commit.
[flow-web.git] / static / highlight / languages / dos.js
1 /*! `dos` grammar compiled for Highlight.js 11.11.1 */
2 (function(){
3 var hljsGrammar = (function () {
4 'use strict';
5
6 /*
7 Language: Batch file (DOS)
8 Author: Alexander Makarov <sam@rmcreative.ru>
9 Contributors: Anton Kochkov <anton.kochkov@gmail.com>
10 Website: https://en.wikipedia.org/wiki/Batch_file
11 Category: scripting
12 */
13
14 /** @type LanguageFn */
15 function dos(hljs) {
16 const COMMENT = hljs.COMMENT(
17 /^\s*@?rem\b/, /$/,
18 { relevance: 10 }
19 );
20 const LABEL = {
21 className: 'symbol',
22 begin: '^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)',
23 relevance: 0
24 };
25 const KEYWORDS = [
26 "if",
27 "else",
28 "goto",
29 "for",
30 "in",
31 "do",
32 "call",
33 "exit",
34 "not",
35 "exist",
36 "errorlevel",
37 "defined",
38 "equ",
39 "neq",
40 "lss",
41 "leq",
42 "gtr",
43 "geq"
44 ];
45 const BUILT_INS = [
46 "prn",
47 "nul",
48 "lpt3",
49 "lpt2",
50 "lpt1",
51 "con",
52 "com4",
53 "com3",
54 "com2",
55 "com1",
56 "aux",
57 "shift",
58 "cd",
59 "dir",
60 "echo",
61 "setlocal",
62 "endlocal",
63 "set",
64 "pause",
65 "copy",
66 "append",
67 "assoc",
68 "at",
69 "attrib",
70 "break",
71 "cacls",
72 "cd",
73 "chcp",
74 "chdir",
75 "chkdsk",
76 "chkntfs",
77 "cls",
78 "cmd",
79 "color",
80 "comp",
81 "compact",
82 "convert",
83 "date",
84 "dir",
85 "diskcomp",
86 "diskcopy",
87 "doskey",
88 "erase",
89 "fs",
90 "find",
91 "findstr",
92 "format",
93 "ftype",
94 "graftabl",
95 "help",
96 "keyb",
97 "label",
98 "md",
99 "mkdir",
100 "mode",
101 "more",
102 "move",
103 "path",
104 "pause",
105 "print",
106 "popd",
107 "pushd",
108 "promt",
109 "rd",
110 "recover",
111 "rem",
112 "rename",
113 "replace",
114 "restore",
115 "rmdir",
116 "shift",
117 "sort",
118 "start",
119 "subst",
120 "time",
121 "title",
122 "tree",
123 "type",
124 "ver",
125 "verify",
126 "vol",
127 // winutils
128 "ping",
129 "net",
130 "ipconfig",
131 "taskkill",
132 "xcopy",
133 "ren",
134 "del"
135 ];
136 return {
137 name: 'Batch file (DOS)',
138 aliases: [
139 'bat',
140 'cmd'
141 ],
142 case_insensitive: true,
143 illegal: /\/\*/,
144 keywords: {
145 keyword: KEYWORDS,
146 built_in: BUILT_INS
147 },
148 contains: [
149 {
150 className: 'variable',
151 begin: /%%[^ ]|%[^ ]+?%|![^ ]+?!/
152 },
153 {
154 className: 'function',
155 begin: LABEL.begin,
156 end: 'goto:eof',
157 contains: [
158 hljs.inherit(hljs.TITLE_MODE, { begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*' }),
159 COMMENT
160 ]
161 },
162 {
163 className: 'number',
164 begin: '\\b\\d+',
165 relevance: 0
166 },
167 COMMENT
168 ]
169 };
170 }
171
172 return dos;
173
174 })();
175
176 hljs.registerLanguage('dos', hljsGrammar);
177 })();