1
+ ( function ( Prism ) {
2
+ var variable = / % % ? [ ~ : \w ] + % ? | ! \S + ! / ;
3
+ var parameter = {
4
+ pattern : / \/ [ a - z ? ] + (? = [ : ] | $ ) : ? | - [ a - z ] \b | - - [ a - z - ] + \b / im,
5
+ alias : 'attr-name' ,
6
+ inside : {
7
+ 'punctuation' : / : /
8
+ }
9
+ } ;
10
+ var string = / " [ ^ " ] * " / ;
11
+ var number = / (?: \b | - ) \d + \b / ;
12
+
13
+ Prism . languages . batch = {
14
+ 'comment' : [
15
+ / ^ : : .* / m,
16
+ {
17
+ pattern : / ( (?: ^ | [ & ( ] ) [ \t ] * ) r e m \b (?: [ ^ ^ & ) \r \n ] | \^ (?: \r \n | [ \s \S ] ) ) * / im,
18
+ lookbehind : true
19
+ }
20
+ ] ,
21
+ 'label' : {
22
+ pattern : / ^ : .* / m,
23
+ alias : 'property'
24
+ } ,
25
+ 'command' : [
26
+ {
27
+ // FOR command
28
+ pattern : / ( (?: ^ | [ & ( ] ) [ \t ] * ) f o r (?: ? \/ [ a - z ? ] (?: [ : ] (?: " [ ^ " ] * " | \S + ) ) ? ) * \S + i n \( [ ^ ) ] + \) d o / im,
29
+ lookbehind : true ,
30
+ inside : {
31
+ 'keyword' : / ^ f o r \b | \b (?: i n | d o ) \b / i,
32
+ 'string' : string ,
33
+ 'parameter' : parameter ,
34
+ 'variable' : variable ,
35
+ 'number' : number ,
36
+ 'punctuation' : / [ ( ) ' , ] /
37
+ }
38
+ } ,
39
+ {
40
+ // IF command
41
+ pattern : / ( (?: ^ | [ & ( ] ) [ \t ] * ) i f (?: ? \/ [ a - z ? ] (?: [ : ] (?: " [ ^ " ] * " | \S + ) ) ? ) * (?: n o t ) ? (?: c m d e x t v e r s i o n \d + | d e f i n e d \w + | e r r o r l e v e l \d + | e x i s t \S + | (?: " [ ^ " ] * " | \S + ) ? (?: = = | (?: e q u | n e q | l s s | l e q | g t r | g e q ) ) (?: " [ ^ " ] * " | \S + ) ) / im,
42
+ lookbehind : true ,
43
+ inside : {
44
+ 'keyword' : / ^ i f \b | \b (?: n o t | c m d e x t v e r s i o n | d e f i n e d | e r r o r l e v e l | e x i s t ) \b / i,
45
+ 'string' : string ,
46
+ 'parameter' : parameter ,
47
+ 'variable' : variable ,
48
+ 'number' : number ,
49
+ 'operator' : / \^ | = = | \b (?: e q u | n e q | l s s | l e q | g t r | g e q ) \b / i
50
+ }
51
+ } ,
52
+ {
53
+ // ELSE command
54
+ pattern : / ( (?: ^ | [ & ( ) ] ) [ \t ] * ) e l s e \b / im,
55
+ lookbehind : true ,
56
+ inside : {
57
+ 'keyword' : / ^ e l s e \b / i
58
+ }
59
+ } ,
60
+ {
61
+ // SET command
62
+ pattern : / ( (?: ^ | [ & ( ] ) [ \t ] * ) s e t (?: ? \/ [ a - z ] (?: [ : ] (?: " [ ^ " ] * " | \S + ) ) ? ) * (?: [ ^ ^ & ) \r \n ] | \^ (?: \r \n | [ \s \S ] ) ) * / im,
63
+ lookbehind : true ,
64
+ inside : {
65
+ 'keyword' : / ^ s e t \b / i,
66
+ 'string' : string ,
67
+ 'parameter' : parameter ,
68
+ 'variable' : [
69
+ variable ,
70
+ / \w + (? = (?: [ * \/ % + \- & ^ | ] | < < | > > ) ? = ) /
71
+ ] ,
72
+ 'number' : number ,
73
+ 'operator' : / [ * \/ % + \- & ^ | ] = ? | < < = ? | > > = ? | [ ! ~ _ = ] / ,
74
+ 'punctuation' : / [ ( ) ' , ] /
75
+ }
76
+ } ,
77
+ {
78
+ // Other commands
79
+ pattern : / ( (?: ^ | [ & ( ] ) [ \t ] * @ ? ) \w + \b (?: [ ^ ^ & ) \r \n ] | \^ (?: \r \n | [ \s \S ] ) ) * / im,
80
+ lookbehind : true ,
81
+ inside : {
82
+ 'keyword' : / ^ \w + \b / i,
83
+ 'string' : string ,
84
+ 'parameter' : parameter ,
85
+ 'label' : {
86
+ pattern : / ( ^ \s * ) : \S + / m,
87
+ lookbehind : true ,
88
+ alias : 'property'
89
+ } ,
90
+ 'variable' : variable ,
91
+ 'number' : number ,
92
+ 'operator' : / \^ /
93
+ }
94
+ }
95
+ ] ,
96
+ 'operator' : / [ & @ ] / ,
97
+ 'punctuation' : / [ ( ) ' ] /
98
+ } ;
99
+ } ( Prism ) ) ;
0 commit comments