1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
!(function (e) {
var r = /%%?[~:\w]+%?|!\S+!/,
t = {
pattern: /\/[a-z?]+(?=[ :]|$):?|-[a-z]\b|--[a-z-]+\b/im,
alias: 'attr-name',
inside: { punctuation: /:/ },
},
n = /"(?:[\\"]"|[^"])*"(?!")/,
i = /(?:\b|-)\d+\b/;
Prism.languages.batch = {
comment: [
/^::.*/m,
{
pattern: /((?:^|[&(])[ \t]*)rem\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,
lookbehind: !0,
},
],
label: { pattern: /^:.*/m, alias: 'property' },
command: [
{
pattern:
/((?:^|[&(])[ \t]*)for(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* \S+ in \([^)]+\) do/im,
lookbehind: !0,
inside: {
keyword: /\b(?:do|in)\b|^for\b/i,
string: n,
parameter: t,
variable: r,
number: i,
punctuation: /[()',]/,
},
},
{
pattern:
/((?:^|[&(])[ \t]*)if(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:not )?(?:cmdextversion \d+|defined \w+|errorlevel \d+|exist \S+|(?:"[^"]*"|(?!")(?:(?!==)\S)+)?(?:==| (?:equ|geq|gtr|leq|lss|neq) )(?:"[^"]*"|[^\s"]\S*))/im,
lookbehind: !0,
inside: {
keyword: /\b(?:cmdextversion|defined|errorlevel|exist|not)\b|^if\b/i,
string: n,
parameter: t,
variable: r,
number: i,
operator: /\^|==|\b(?:equ|geq|gtr|leq|lss|neq)\b/i,
},
},
{
pattern: /((?:^|[&()])[ \t]*)else\b/im,
lookbehind: !0,
inside: { keyword: /^else\b/i },
},
{
pattern:
/((?:^|[&(])[ \t]*)set(?: \/[a-z](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,
lookbehind: !0,
inside: {
keyword: /^set\b/i,
string: n,
parameter: t,
variable: [r, /\w+(?=(?:[*\/%+\-&^|]|<<|>>)?=)/],
number: i,
operator: /[*\/%+\-&^|]=?|<<=?|>>=?|[!~_=]/,
punctuation: /[()',]/,
},
},
{
pattern:
/((?:^|[&(])[ \t]*@?)\w+\b(?:"(?:[\\"]"|[^"])*"(?!")|[^"^&)\r\n]|\^(?:\r\n|[\s\S]))*/m,
lookbehind: !0,
inside: {
keyword: /^\w+\b/,
string: n,
parameter: t,
label: { pattern: /(^\s*):\S+/m, lookbehind: !0, alias: 'property' },
variable: r,
number: i,
operator: /\^/,
},
},
],
operator: /[&@]/,
punctuation: /[()']/,
};
})();
|