-
Notifications
You must be signed in to change notification settings - Fork 13
/
MikrotikScript.tmLanguage
624 lines (624 loc) · 40.4 KB
/
MikrotikScript.tmLanguage
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>rsc</string>
</array>
<key>name</key>
<string>Mikrotik Script</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#literal-string</string>
</dict>
<dict>
<key>include</key>
<string>#comments</string>
</dict>
<dict>
<key>include</key>
<string>#parameters-readwrite</string>
</dict>
<dict>
<key>include</key>
<string>#literal-constants</string>
</dict>
<dict>
<key>include</key>
<string>#literal-boolean</string>
</dict>
<dict>
<key>include</key>
<string>#literal-ip</string>
</dict>
<dict>
<key>include</key>
<string>#literal-mac</string>
</dict>
<dict>
<key>include</key>
<string>#literal-date</string>
</dict>
<dict>
<key>include</key>
<string>#literal-number</string>
</dict>
<dict>
<key>include</key>
<string>#variable</string>
</dict>
<dict>
<key>include</key>
<string>#variable-definition</string>
</dict>
<dict>
<key>include</key>
<string>#control-flow</string>
</dict>
<dict>
<key>include</key>
<string>#commands</string>
</dict>
<dict>
<key>include</key>
<string>#parameters-readonly</string>
</dict>
<dict>
<key>include</key>
<string>#operators</string>
</dict>
<dict>
<key>include</key>
<string>#line-continuation</string>
</dict>
</array>
<key>repository</key>
<dict>
<key>commands</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>(?x) \b(?<![\-=])( Neighbor| aaa| accept\-filter| access\-list| access| accounting| action| address\-list| address| add| advertise\-filter| advertisements| aggregate| alert| align| area| arp| bandwidth\-server| bandwidth\-test| beep| bfd| bgp\-vpls| bgp| binding| bonding| bridge| cache\-contents| cache| certificate| cisco\-bgp\-vpls| client| config| connect\-list| connections| connection| cookie| cpu| delay| detail| dhcp\-client| dhcp\-relay| dhcp\-server| direct| disable| discovery| dns\-update| e\-mail| edit| enable| environment| eoip| error| ethernet| export| fdb| fetch| file| filter| find| find| firewall| firmware| flush| get| gps| graphing| gre6| gre| group| host| hotspot| identity| inbox| info| inserts| installed\-sa| instance| interfaces| interface| interface| ip\-binding| ip\-scan| ipip| ipsec| ipv6| ip| ip| irq| keys| key| l2tp\-client| l2tp\-server| latency\-distribution| layer7\-protocol| lcd| ldp| lease| leds| len| logging| log| lookup| lsa| mac\-server| mac\-winbox| mangle| manual\-sa| manual\-tx\-power\-table| mesh| mirror| mme| mode\-cfg| monitor| mpls| nat| nbma\-neighbor| nd| neighbor| netwatch| network| note| nstreme\-dual| nstreme| ntp| option| originators| ospf\-router| ospf| ovpn\-client| ovpn\-server| packet\-generator| packet\-template| packet| parse| path\-state| pci| peer| pick| ping| policy| pool| port| ppp\-client| pppoe\-client| pppoe\-server| ppp| pptp\-client| pptp\-server| prefix\-list| prefix| print| profile| proposal| protocol| proxy| put| queue| range| raw| registration\-table| remote\-peers| remove| resolve| resource| resv\-state| rip| routerboard| route| routing| run| scan| scep| scheduler| script| security\-profiles| send| server| service| settings| set| set| sham\-link| shares| share| smb| sms| snapshot| sniffer| socks| sstp\-client| sstp\-server| statistics| stats| status| switch| system| target| terminal| time| toarray| tobool| toid| toip6| toip| tonum| tool| tostr| totime| typeof| tracking| traffic\-eng| traffic\-flow| traffic\-generator| traffic\-monitor| tunnel\-path| type| uncounted| upgrade| upnp| ups| usb| used| users| user| virtual\-link| vlan| vpls| vpnv4\-route| vrf| vrrp| walled\-garden| watchdog| wds| web\-access| wireless| return| caps\-man| console| disk| partitions| port| special\-login| radius| snmp| dude| agent| probe| device| ros| device\-type| service| notification| settings| simple| discovery\-settings| romon| service\-port )(?!-)\b
</string>
<key>name</key>
<string>support.function.mikrotik-script</string>
</dict>
</array>
</dict>
<key>comments</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.mikrotik-script</string>
</dict>
</dict>
<key>comment</key>
<string>comments are ignored by syntax</string>
<key>match</key>
<string>(#).*$\n?</string>
<key>name</key>
<string>comment.line.number-sign.mikrotik-script</string>
</dict>
</array>
</dict>
<key>control-flow</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.flow.mikrotik-script</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>invalid.illegal.whitespace.mikrotik-script</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>keyword.operator.comparison.mikrotik-script</string>
</dict>
</dict>
<key>match</key>
<string>\b(from|to|step|in|do|else|while)\b([\s|\t]*)(=)</string>
</dict>
<dict>
<key>match</key>
<string>\b(while|for|foreach|on-error|if|do)\b</string>
<key>name</key>
<string>keyword.control.flow.mikrotik-script</string>
</dict>
</array>
</dict>
<key>line-continuation</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.separator.continuation.line.mikrotik-script</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>invalid.illegal.unexpected-text.mikrotik-script</string>
</dict>
</dict>
<key>match</key>
<string>(\\)(.*)$\n?</string>
</dict>
</array>
</dict>
<key>literal-boolean</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>comment</key>
<string>boolean</string>
<key>match</key>
<string>\b(true|false)\b</string>
<key>name</key>
<string>constant.language.mikrotik-script</string>
</dict>
</array>
</dict>
<key>literal-date</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>comment</key>
<string>1s, 2m, 3h, 4d</string>
<key>match</key>
<string>\b([1-9]+[0-9]*|0)(ms|s|m|h|d|w)\b</string>
<key>name</key>
<string>constant.other.time.mikrotik-script</string>
</dict>
<dict>
<key>comment</key>
<string>1w5d12:20:59</string>
<key>match</key>
<string>\b(([1-9]+[0-9]*w)?([1-9]+[0-9]*d)?([0-9]{2}:[0-9]{2}:[0-9]{2}))\b</string>
<key>name</key>
<string>constant.other.time.mikrotik-script</string>
</dict>
<dict>
<key>match</key>
<string>\b((jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\/[0-9]{2}\/[1-9]+[0-9]*)\b</string>
<key>name</key>
<string>constant.other.date.mikrotik-script</string>
</dict>
<dict>
<key>match</key>
<string>([\+\-]?[0-9]{2}:[0-9]{2})</string>
<key>name</key>
<string>constant.other.time.delta.mikrotik-script</string>
</dict>
</array>
</dict>
<key>literal-ip</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>comment</key>
<string>IPv6 address, zero compressed IPv6 addresses, link-local IPv6 addresses with zone index, IPv4-Embedded IPv6 Address, IPv4-mapped IPv6 addresses, IPv4-translated addresses (http://stackoverflow.com/a/17871737/188530)</string>
<key>match</key>
<string>\b((\h{1,4}\:){7}\h{1,4}|(\h{1,4}\:){1,7}\:|(\h{1,4}\:){1,6}\:\h{1,4}|(\h{1,4}\:){1,5}(\:\h{1,4}){1,2}|(\h{1,4}\:){1,4}(\:\h{1,4}){1,3}|(\h{1,4}\:){1,3}(\:\h{1,4}){1,4}|(\h{1,4}\:){1,2}(\:\h{1,4}){1,5}|\h{1,4}\:((\:\h{1,4}){1,6})|\:((\:\h{1,4}){1,7}|\:)|fe80\:(\:\h{,4}){,4}\%[0-9a-zA-Z]{1,}|\:\:(ffff(\:0{1,4})?\:)?((25[0-5]|(2[0-4]|1?[0-9])?[0-9]).){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9])|(\h{1,4}\:){1,4}\:((25[0-5]|(2[0-4]|1?[0-9])?[0-9]).){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9]))\b</string>
<key>name</key>
<string>constant.other.ipv6.mikrotik-script</string>
</dict>
<dict>
<key>comment</key>
<string>IPv4 address (http://stackoverflow.com/a/5284179/188530)</string>
<key>match</key>
<string>\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/([0-9]|1[0-9]|2[0-4]))?\b</string>
<key>name</key>
<string>constant.other.ipv4.mikrotik-script</string>
</dict>
</array>
</dict>
<key>literal-mac</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>comment</key>
<string>MAC address (http://stackoverflow.com/a/4260512/188530)</string>
<key>match</key>
<string>\b(\h{2}[:-]){5}(\h{2})\b</string>
<key>name</key>
<string>constant.other.mac.mikrotik-script</string>
</dict>
</array>
</dict>
<key>literal-number</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>comment</key>
<string>64bit signed integer in hexadecimal form</string>
<key>match</key>
<string>\b(?i:(0x\h*))\b</string>
<key>name</key>
<string>constant.numeric.integer.hexadecimal.mikrotik-script</string>
</dict>
<dict>
<key>comment</key>
<string>64bit signed integer in decimal form</string>
<key>match</key>
<string>\b([1-9]+[0-9]*|0)\b</string>
<key>name</key>
<string>constant.numeric.integer.decimal.mikrotik-script</string>
</dict>
</array>
</dict>
<key>literal-string</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>"</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.mikrotik-script</string>
</dict>
</dict>
<key>end</key>
<string>"</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.mikrotik-script</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.mikrotik-script</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string-escape</string>
</dict>
<dict>
<key>include</key>
<string>#string-expression</string>
</dict>
<dict>
<key>include</key>
<string>#line-continuation</string>
</dict>
<dict>
<key>match</key>
<string>\n</string>
<key>name</key>
<string>invalid.illegal.newline.mikrotik-script</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>operators</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>comment</key>
<string>arithmetic operators</string>
<key>match</key>
<string>\+|\-|\*|\/</string>
<key>name</key>
<string>keyword.operator.arithmetic.mikrotik-script</string>
</dict>
<dict>
<key>comment</key>
<string>relational operators</string>
<key>match</key>
<string><|>|<=|>=</string>
<key>name</key>
<string>keyword.operator.relational.mikrotik-script</string>
</dict>
<dict>
<key>comment</key>
<string>comparison operators</string>
<key>match</key>
<string>=|!=</string>
<key>name</key>
<string>keyword.operator.comparison.mikrotik-script</string>
</dict>
<dict>
<key>comment</key>
<string>logical operators</string>
<key>match</key>
<string>\!|&&|\|\|</string>
<key>name</key>
<string>keyword.operator.logical.mikrotik-script</string>
</dict>
<dict>
<key>comment</key>
<string>bitwise operators</string>
<key>match</key>
<string>~|\||\^|\&|<<|>></string>
<key>name</key>
<string>keyword.operator.bitwise.mikrotik-script</string>
</dict>
<dict>
<key>comment</key>
<string>concatenation operators</string>
<key>match</key>
<string>\.|\,</string>
<key>name</key>
<string>keyword.operator.concatenation.mikrotik-script</string>
</dict>
<dict>
<key>comment</key>
<string>access array element by key</string>
<key>match</key>
<string>-></string>
<key>name</key>
<string>keyword.operator.other.mikrotik-script</string>
</dict>
<dict>
<key>comment</key>
<string>delimeters</string>
<key>match</key>
<string>:|\$|\/</string>
<key>name</key>
<string>keyword.operator.other.mikrotik-script</string>
</dict>
<dict>
<key>match</key>
<string>;</string>
<key>name</key>
<string>punctuation.terminator.statement.mikrotik-script</string>
</dict>
<dict>
<key>match</key>
<string>\(|\)</string>
<key>name</key>
<string>meta.brace.round.mikrotik-script</string>
</dict>
<dict>
<key>match</key>
<string>\{|\}</string>
<key>name</key>
<string>meta.brace.curly.mikrotik-script</string>
</dict>
<dict>
<key>match</key>
<string>\[|\]</string>
<key>name</key>
<string>meta.brace.square.mikrotik-script</string>
</dict>
</array>
</dict>
<key>parameters-readonly</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>(?x) \b(?<![\-=])( 802\.1x\-port\-enabled| ac\-mac| ack\-timeout| active\-address| active\-client\-id| active\-cpu| active\-interfaces| active\-links| active\-mac\-address| active\-server| actual\-interface| actual\-tx\-interval| addresses| adjacency| agent\-circuit\-id| agent\-remote\-id| aggregator| ap| architecture\-name| as\-path| as4\-capability| assured| atomic\-aggregate| authentication\-type| authority| backup\-dr\-address| bad\-blocks| bgp\-ext\-communities| bgp| blocked| board\-name| bytes\-in| bytes\-out| ca\-crl\-host| caller\-id| category| ca| checksum| cisco\-bgp\-signaled| client| cluster\-list| communities| cpu\-count| cpu\-frequency| cpu\-load| creation\-time| crl| data\-byte| db\-exchanges| db\-summaries| denied| desired\-tx\-interval| dhcp| dijkstras| disk| dr\-address| dsa| dst\-user| dst| dynamic| effective\-router\-id| egress| encoding| encryption| errors| established| evm\-ch0| evm\-ch1| evm\-ch2| expire\-time| expired| expires\-after| expires\-in| external\-imports| file\-size| file\ type| fingerprint| first\-header| frame\-bytes| frames| framing\-current\-size| framing\-limit| framing\-mode| free\-hdd\-space| free\-memory| gateway\-status| global| gre\-key| gre\-version| group\-encryption| header\-stack| hits| hw\-frame\-bytes| hw\-frames| icmp\-code| icmp\-id| icmp\-type| idle\-time| id| imposed\-label| in\-accepted| in\-dropped| in\-label| in\-previous\-hop| in\-transformed| inactive| info| inteface| invalid\-after| invalid\-before| invalid| io| ip\-dscp| ip\-dst| ip\-frag\-off| ip\-gateway| ip\-id| ip\-src| ip\-ttl| irq| issued| issuer| label| last\-accessed\-time| last\-accessed| last\-activity| last\-ip| last\-modified\-time| last\-modified| last\-seen| latency\-distribution\-measure\-interval| latency\-distribution\-samples| link\-local| local\-label| local\-pref| local\-transport| locally\-originated| ls\-requests| ls\-retransmits| mac\-dst| mac\-src| management\-protection| manufacture\-date| max\-entries| med| memory| message| model| mru| next\-hop| nexthop| no\-expiration\-info| no\-memory| nominal\-battery\-voltage| non\-cacheable| non\-output| not\-found| nstreme| offline\-after| operational| options| originator\-id| origin| ospf\-metric| ospf| out\-accepted| out\-dropped| out\-label| out\-next\-hop| out\-transformed| owner| p\-throughput| package\-architecture| package\-built\-time| package\-name| package\-version| packed\-bytes| packed\-frames| packets\-in| packets\-out| packets\-rx| path\-in\-explicit\-route| path\-in\-record\-route| path\-out\-explicit\-route| path\-out\-record\-route| peer| ph2\-state| pool| prefix\-count| primary\-dns| primary\-ntp| protocols| radius| raw\-header| received\-from| recorded\-route| refresh\-capability| remaining\-bw| remote\-group| remote\-hold\-time| remote\-id| remote\-label| remote\-min\-rx| remote\-status| reply\-dst\-address| reply\-src\-address| required\-min\-rx| resv\-bandwidth| resv\-out\-record\-route| revoked| rip| routeros\-version| router| running| rx\-1024\-1518| rx\-128\-255| rx\-1519\-max| rx\-256\-511| rx\-512\-1023| rx\-64| rx\-65\-127| rx\-align\-error| rx\-broadcast| rx\-bytes| rx\-ccq| rx\-fcs\-error| rx\-fragment| rx\-multicast| rx\-overflow| rx\-pause| rx\-rate| rx\-runt| rx\-too\-long| scep\-url| secondary\-dns| secondary\-ntp| seen\ reply| sending\-path| sending\-resv| sending\-targeted\-hello| sequence\-number| serial| service| shared| side| signal\-strength\-ch0| signal\-strength\-ch1| signal\-strength\-ch2| signal\-strength| signal\-to\-noise| since| slave| smart\-card\-key| src\-user| src| state\-changes| static| strength\-at\-rates| successes| switch| tcp\-state| tdma\-retx| tdma\-rx\-size| tdma\-timing\-offset| tdma\-tx\-size| tdma\-windfull| timestamp| too\-large| total\-entries| total\-hdd\-space| total\-memory| transport\-nexthop| tx\-1024\-1518| tx\-128\-255| tx\-1519\-max| tx\-256\-511| tx\-512\-1023| tx\-64| tx\-65\-127| tx\-align\-error| tx\-broadcast| tx\-bytes| tx\-ccq| tx\-evm\-ch0| tx\-evm\-ch1| tx\-evm\-ch2| tx\-fcs\-error| tx\-fragment| tx\-frames\-timed\-out| tx\-multicast| tx\-overflow| tx\-pause| tx\-rate| tx\-runt| tx\-signal\-strength\-ch0| tx\-signal\-strength\-ch1| tx\-signal\-strength\-ch2| tx\-signal\-strength| tx\-too\-long| udp\-dst\-port| udp\-src\-port| unknown\-server| unreachable| updates\-received| updates\-sent| up| uri| used\-hold\-time| used\-keepalive\-time| users| vlan\-protocol| vpls| wds| withdraws\-received| withdraws\-sent| wmm\-enabled| write\-sect\-since\-reboot| write\-sect\-total )(?!-)\b
</string>
<key>name</key>
<string>entity.other.attribute-name.readonly.mikrotik-script</string>
</dict>
</array>
</dict>
<key>parameters-readwrite</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.other.attribute-name.readwrite.mikrotik-script</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>invalid.illegal.unexpected-text.mikrotik-script</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>keyword.operator.assigment.mikrotik-script</string>
</dict>
</dict>
<key>match</key>
<string>(?x) (\b(?<![\/\-=])(?<words> 2ghz\-10mhz\-power\-channels| 2ghz\-11n\-channels| 2ghz\-5mhz\-power\-channels| 2ghz\-b\-channels| 2ghz\-g\-channels| 2ghz\-g\-turbo\-channels| 5ghz\-10mhz\-power\-channels| 5ghz\-11n\-channels| 5ghz\-5mhz\-power\-channels| 5ghz\-channels| 5ghz\-turbo\-channels| 6to4\-interface| 802\.3\-sap| 802\.3\-type| AH| DNS| ESP| NET\-BIOS| SNMP| ac\-name| accept\-dynamic\-neighbors| accept\-redirects| accept\-router\-advertisements| accept\-source\-route| accept| accessible\-via\-web| account\-local\-traffic| accounting| action| active\-flow\-timeout| active\-mode| active\-port\-type| active| adaptive\-noise\-immunity| add\-arp| add\-default\-route| add\-lifetime| add\-mac\-cookie| add\-relay\-info| address\-families| address\-family| address\-list\-timeout| address\-list| address\-pool| address\-prefix\-length| address6| addresses| address| addtime| adjacent\-neighbors| admin\-mac| advertise\-dns| advertise\-filter| advertise\-interval| advertise\-mac\-address| advertise\-timeout| advertise\-url| advertised\-l2mtu| advertise| affinity\-exclude| affinity\-include\-all| affinity\-include\-any| ageing\-time| age| ah\-algorithm| ah\-key| ah\-spi| alarm\-setting| alert\-timeout| allocate\-udp\-ports\-from| allow\-address| allow\-as\-in| allow\-disable\-external\-interface| allow\-fast\-path| allow\-guests| allow\-remote\-requests| allow\-sharedkey| allow\-target| allowed\-number| allow| always\-broadcast| always\-from\-cache| antenna\-gain| antenna\-mode| ap\-tx\-limit| apn| append\-bgp\-communities| append\-route\-targets| area\-id| area\-prefix| area| arp\-dst\-address| arp\-dst\-mac\-address| arp\-gratuitous| arp\-hardware\-type| arp\-interval| arp\-ip\-targets| arp\-opcode| arp\-packet\-type| arp\-ping| arp\-src\-address| arp\-src\-mac\-address| arp\-timeout| arp| as\-override| ascii| as| attribute\-filter| audio\-max| audio\-min| audio\-monitor| auth\-algorithms| auth\-algorithm| auth\-key| auth\-method| authenticate| authentication\-key\-id| authentication\-key| authentication\-password| authentication\-protocol| authentication\-types| authentication| authoritative| auth| auto\-bandwidth\-avg\-interval| auto\-bandwidth\-range| auto\-bandwidth\-reserve| auto\-bandwidth\-update\-interval| auto\-mac| auto\-negotiation| auto\-send\-supout| automatic\-supout| autonomous| backup\-designated\-router| bandwidth\-limit| bandwidth| band| basic\-rates\-a\/g| basic\-rates\-b| battery\-charge| battery\-voltage| baud\-rate| bearing| bgp\-as\-path\-length| bgp\-as\-path| bgp\-atomic\-aggregate| bgp\-communities| bgp\-local\-pref| bgp\-med| bgp\-origin| bgp\-prepend| bgp\-weight| bidirectional\-timeout| blink| block\-access| blockade\-k\-factor| board| body| boot\-device| boot\-file\-name| boot\-protocol| bootp\-support| bridge\-cost| bridge\-horizon| bridge\-mode| bridge\-path\-cost| bridge\-port\-priority| bridge| broadcast| bsd\-syslog| burst\-time| bytes| ca\-fingerprint| ca\-identity| cable\-setting| cable\-test| cache\-administrator| cache\-entries| cache\-hit\-dscp| cache\-max\-ttl| cache\-on\-disk| cache\-size| capabilities| cc| certificate| chain| challenge\-password| change\-tcp\-mss| channel\-time| channel\-width| channel| check\-certificate| check\-gateway| check\-interval| check\-status| chip\-info| cipher| cisco\-style\-id| cisco\-style| cisco\-vpls\-nlri\-len\-fmt| client\-id| client\-to\-client\-reflection| client\-tx\-limit| cluster\-id| code| comment| common\-name| compression| confederation\-peers| confederation| connect\-to| connection\-bytes| connection\-limit| connection\-mark| connection\-rate| connection\-state| connection\-type| connect| contact| contents| content| contrast| cost| country| count| cpu\-frequency| cpu| current\-bytes| current\-mac\-address| data\-bits| data\-channel| data| date\-and\-time| days\-valid| dead\-interval| default\-ap\-tx\-limit| default\-authentication| default\-cable\-settings| default\-client\-tx\-limit| default\-cost| default\-forwarding| default\-group| default\-name| default\-originate| default\-periodic\-calibration| default\-profile| default\-route\-distance| default\-vlan\-id| default| delay\-threshold| designated\-port\-count| designated\-router| device\-id| device| dfs\-mode| dh\-group| dhcp\-options| dhcp\-option| dhcp\-server| dial\-command| dial\-on\-demand| direction| directory| disable\-csma| disable\-running\-check| disabled| disconnect\-timeout| discover| disk\-file\-count| disk\-file\-name| disk\-lines\-per\-file| disk\-stop\-on\-full| distance| distribute\-default| distribute\-for\-default\-route| dns\-name| dns\-server| do\-not\-fragment| domain\-id| domain\-tag| domain| down\-delay| down\-flood\-thresholds| down\-script| dpd\-interval| dpd\-maximum\-failures| dscp| dst\-address\-list| dst\-address\-type| dst\-address| dst\-delta| dst\-end| dst\-host| dst\-limit| dst\-mac\-address| dst\-path| dst\-port| dst\-start| duid| duration| dynamic\-label\-range| eap\-methods| edge\-port\-discovery| edge\-port| edge| email\-to| email| enable\-nstreme| enable\-polling| enabled| enc\-algorithms| enc\-algorithm| encryption\-password| encryption\-protocol| engine\-id| esp\-auth\-algorithm| esp\-auth\-key| esp\-enc\-algorithm| esp\-enc\-key| esp\-spi| eui\-64| exchange\-mode| exclude\-groups| export\-pub\-key| export\-route\-target| external\-fdb| file\-limit| file\-name| file| filter\-direction| filter\-interface| filter\-ip\-address| filter\-ip\-protocol| filter\-mac\-address| filter\-mac\-protocol| filter\-mac| filter\-operator\-between\-entries| filter\-port| filter\-stream| fingerprint\-algorithm| firmware| flow\-control\-auto| flow\-control\-rx| flow\-control\-tx| flow\-control| force\-aes| force\-backup\-booter| forward\-delay| forwarding| forward| fragment\-offset| fragment| frame\-lifetime| frame\-size| framer\-limit| framer\-policy| frames\-per\-second| frequency\-mode| frequency\-offset| frequency| from\-address| from\-date| from\-pool| from\-time| from| full\-duplex| garbage\-timer| gateway\-class| gateway\-keepalive| gateway\-selection| gateway| generate\-key| generate\-policy| generic\-timeout| graph| group\-ciphers| group\-key\-update| group| hash\-algorithm| hello\-interval| hide\-ssid| hold\-time| holding\-priority| hop\-limit| hoplimit| hops| horizon| host\-name| host| hotspot\-address| hotspot| ht\-ampdu\-priorities| ht\-amsdu\-limit| ht\-amsdu\-threshold| ht\-basic\-mcs| ht\-chains| ht\-channel\-width| ht\-guard\-interval| ht\-rates| ht\-rxchains| ht\-streams| ht\-supported\-mcs| ht\-txchains| html\-directory| http\-cookie\-lifetime| http\-proxy| hw\-fragmentation\-threshold| hw\-protection\-mode| hw\-protection\-threshold| hw\-retries| hwmp\-default\-hoplimit| hwmp\-prep\-lifetime| hwmp\-preq\-destination\-only| hwmp\-preq\-reply\-and\-forward| hwmp\-preq\-retries| hwmp\-preq\-waiting\-time| hwmp\-rann\-interval| hwmp\-rann\-lifetime| hwmp\-rann\-propagation\-delay| iaid| icmp\-options| icmp\-rate\-limit| icmp\-rate\-mask| icmp\-timeout| identification| identity| idle\-timeout| ignore\-as\-path\-len| ignore\-directip\-modem| igp\-flood\-period| import\-route\-target| import| in\-bridge\-port| in\-bridge| in\-buffer\-errors| in\-errors| in\-filter| in\-header\-errors| in\-interface| in\-no\-policies| in\-no\-states| in\-policy\-blocked| in\-policy\-errors| in\-prefix\-list| in\-state\-expired| in\-state\-invalid| in\-state\-mismatches| in\-state\-mode\-errors| in\-state\-protocol\-errors| in\-state\-sequence\-errors| in\-template\-mismatches| inactive\-flow\-timeout| include\-igp| incoming\-filter| incoming\-packet\-mark| info\-channel| ingress\-priority| inherit\-attributes| inject\-summary\-lsas| insert\-queue\-before| instance| interface\-name| interface\-type| interfaces| interface| interim\-update| interval| invert\-math| ip\-address| ip\-forwarding| ip\-forward| ip\-header\-size| ip\-packet\-size| ip\-protocol| ipsec\-protocols| ipv4\-options| ipv6| jump\-target| k\-factor| keep\-max\-sms| keep\-result| keepalive\-timeout| keepalive\-time| keepalive| key\-bits| key\-chain| key\-id| key\-name| key\-size| key\-usage| key| kind| l2mtu| l2router\-id| lacp\-rate| last\-packet\-before| latency\-distribution\-max| latency\-distribution\-scale| latency| latitude| layer7\-protocol| learning| lease\-script| lease\-time| leds| level| life\-time| lifebytes| lifetime| limit\-bytes\-in| limit\-bytes\-out| limit\-bytes\-total| limit\-uptime| limit| line\-voltage| link\-monitoring| list| load| local\-address| local\-port| local\-tx\-speed| local\-udp\-tx\-size| locality| locally\-originated\-bgp| local| location| log\-prefix| login\-by| longitude| loop\-detect| low\-battery| lsr\-id| mac\-address| mac\-auth\-password| mac\-cookie\-timeout| mac\-protocol| make\-static| managed\-address\-configuration| management\-protection\-key| management\-protection| manual\-sa| manual\-tx\-powers| master\-interface| master\-port| match\-chain| max\-cache\-object\-size| max\-cache\-size| max\-client\-connections| max\-connections| max\-fresh\-time| max\-message\-age| max\-mru| max\-mtu| max\-prefix\-limit| max\-prefix\-restart\-time| max\-server\-connections| max\-sessions| max\-station\-count| max\-udp\-packet\-size| mbps| mdix\-enable| memory\-limit| memory\-lines| memory\-scroll| memory\-stop\-on\-full| mesh\-portal| mesh| messages\-rx| messages\-tx| method| metric\-bgp| metric\-connected| metric\-default| metric\-ospf| metric\-other\-ospf| metric\-rip| metric\-static| metric| mii\-interval| min\-runtime| min\-rx| mirror\-source| mirror\-target| mode\-cfg| modem\-init| modem\-signal\-treshold| mode| monitor| mpls\-mtu| mpls\-te\-area| mpls\-te\-router\-id| mq\-pfifo\-limit| mrru| mschapv2\-password| mschapv2\-username| mss| mtu| multicast\-buffering| multicast\-helper| multihop| multiple\-channels| multiplier| my\-id\-user\-fqdn| name| nas\-port\-type| nat\-traversal| neighbor\-id| neighbors| neighbor| netmask| network\-type| network| new\-connection\-mark| new\-dscp| new\-mss| new\-packet\-mark| new\-priority| new\-routing\-mark| new\-ttl| next\-server| nexthop\-choice| no\-ping\-delay| noise\-floor\-threshold| note| nth| ntp\-server| null\-modem| num| nv2\-cell\-radius| nv2\-noise\-floor\-offset| nv2\-preshared\-key| nv2\-qos| nv2\-queue\-count| nv2\-security| offline\-time| on\-alert| on\-backup| on\-battery| on\-event| on\-fail\-retry\-time| on\-interface| on\-line| on\-link| on\-login| on\-logout| on\-master| one\-session\-per\-host| only\-headers| only\-one| open\-status\-page| organization| organziation| orig\-mac\-address| origination\-interval| originator| ospf\-type| other\-configuration| out\-bridge\-port| out\-bridge| out\-bundle\-check\-errors| out\-bundle\-errors| out\-errors| out\-filter| out\-interface| out\-no\-states| out\-policy\-blocked| out\-policy\-dead| out\-policy\-errors| out\-prefix\-list| out\-state\-expired| out\-state\-mode\-errors| out\-state\-protocol\-errors| out\-state\-sequence\-errors| outgoing\-filter| outgoing\-packet\-mark| output\-voltage| overloaded\-output| p2p| packet\-mark| packet\-size| packet\-type| packets| page\-refresh| parent\-proxy\-port| parent\-proxy| parent\-queue| parity| passive| password| path\-cost| path\-vector\-limit| path| pci\-info| pcq\-burst\-rate| pcq\-burst\-threshold| pcq\-burst\-time| pcq\-classifier| pcq\-dst\-address\-mask| pcq\-dst\-address6\-mask| pcq\-limit| pcq\-rate| pcq\-src\-address\-mask| pcq\-src\-address6\-mask| pcq\-total\-limit| peek\-rate| per\-connection\-classifier| periodic\-calibration\-interval| periodic\-calibration| pfifo\-limit| pfs\-group| pfs| phone| phy\-regs| pin| platform| poe\-out| poe\-priority| point\-to\-point\-port| point\-to\-point| policy\-group| policy| poll\-interval| pool\-name| pool\-prefix\-length| port\-count| port\-number| port\-type| ports| port| pps| preamble\-mode| preemption\-mode| pref\-src| preferred\-gateway| preferred\-lifetime| prefix\-length| prefix| primary\-ntp| primary\-path| primary\-retry\-interval| primary\-server| primary| priority| prism\-cardtype| private\-algo| private\-key| private\-pre\-shared\-key| profile| propagate\-ttl| proposal\-check| proposal| proprietary\-extensions| proprietary\-extension| protocol\-mode| protocol| psd| pw\-mtu| pw\-type| query\-server\-timeout| query\-total\-timeout| queue\-type| queue| quick| ra\-delay| ra\-interval| ra\-lifetime| radio\-name| radius\-accounting| radius\-default\-domain| radius\-eap\-accounting| radius\-interim\-update| radius\-location\-name| radius\-mac\-authentication| radius\-mac\-caching| radius\-mac\-format| radius\-mac\-mode| random\-data| random| ranges| range| rate\-limit| rate\-selection| rate\-set| rates\-a\/g| rates\-b| rate| raw\-value| reachable\-time| read\-access| read\-only| receive\-all| receive\-enabled| receive\-errors| receive| record\-route| red\-avg\-packet| red\-burst| red\-limit| red\-max\-threshold| red\-min\-threshold| redirect\-to| redistribute\-bgp| redistribute\-connected| redistribute\-ospf| redistribute\-other\-bgp| redistribute\-other\-ospf| redistribute\-rip| redistribute\-static| refresh\-time| regexp| reject\-with| relay| release| remember| remote\-address| remote\-as| remote\-certificate| remote\-mac| remote\-peer| remote\-port| remote\-tx\-speed| remote\-udp\-tx\-size| remote| remove\-private\-as| renew| reoptimize\-interval| reoptimize\-paths| replace\-battery| replay| req\-fingerprint| require\-client\-certificate| resends| reset\-alert| reset\-counters\-all| reset\-counters| reset\-mac\-address| resource\-class| retransmit\-interval| role| root\-bridge\-id| root\-bridge| root\-path\-cost| root\-port| route\-comment| route\-distinguisher| route\-reflect| route\-tag| route\-target| router\-id| routes| routing\-mark| routing\-table| rp\-filter| rp_filter| runtime\-calibration\-running| runtime\-left| rx\-band| rx\-channel\-width| rx\-frequency| rx\-radio| sa\-dst\-address| sa\-src\-address| sa\-type| same\-not\-by\-dst| satellites| scan\-list| scope| secondary\-ntp| secondary\-paths| secondary\-server| secret| secure\-redirects| security\-profile| security| send\-dns| send\-email\-from| send\-email\-to| send\-initial\-contact| send\-redirects| send\-smtp\-server| send\-targeted| sending\-rstp| send| seq\-number| serial\-number| serialize\-connections| servers| server| service\-name| session\-timeout| set\-bgp\-communities| set\-bgp\-local\-pref| set\-bgp\-med| set\-bgp\-prepend\-path| set\-bgp\-prepend| set\-bgp\-weight| set\-check\-gateway| set\-disabled| set\-distance| set\-in\-nexthop\-direct| set\-in\-nexthop\-ipv6| set\-in\-nexthop\-linklocal| set\-in\-nexthop| set\-metric| set\-out\-nexthop\-ipv6| set\-out\-nexthop\-linklocal| set\-out\-nexthop| set\-pref\-src| set\-route\-comment| set\-route\-tag| set\-route\-targets| set\-routing\-mark| set\-scope| set\-site\-of\-origin| set\-system\-time| set\-target\-scope| set\-type| set\-use\-te\-nexthop| setup\-priority| setup| sfp\-rate\-select| sfq\-allot| sfq\-perturb| shared\-users| share| show\-at\-login| show\-dummy\-rule| signal\-range| silent\-boot| sim\-pin| simple\-queue| sip\-direct\-media| site\-id| site\-of\-origin| size| skin| slaves| smart\-boost\-mode| smart\-ssdd\-mode| smtp\-server| software\-id| source| speed| spi| split\-include| split\-user\-domain| src\-address\-list| src\-address\-type| src\-address| src\-mac\-address| src\-mac| src\-path| src\-port| ssid\-all| ssid| ssl\-certificate| start\-time| start| state| static\-algo\-0| static\-algo\-1| static\-algo\-2| static\-algo\-3| static\-key\-0| static\-key\-1| static\-key\-2| static\-key\-3| static\-sta\-private\-algo| static\-sta\-private\-key| static\-transmit\-key| station\-bridge\-clone\-mac| stats\-samples\-to\-keep| status\-autorefresh| status| stop\-bits| stop| store\-every| store\-leases\-disk| store\-name| store\-on\-disk| stp\-flags| stp\-forward\-delay| stp\-hello\-time| stp\-max\-age| stp\-msg\-age| stp\-port| stp\-root\-address| stp\-root\-cost| stp\-root\-priority| stp\-sender\-address| stp\-sender\-priority| stp\-type| streaming\-enabled| streaming\-max\-rate| streaming\-server| subject| summary\-only| supplicant\-identity| supported\-bands| supported\-rates\-a\/g| supported\-rates\-b| suppress\-filter| synchronize| syslog\-facility| syslog\-severity| syslog\-time\-format| target\-scope| target| tcp\-close\-timeout| tcp\-close\-wait\-timeout| tcp\-connection\-count| tcp\-established\-timeout| tcp\-fin\-wait\-timeout| tcp\-flags| tcp\-last\-ack\-timeout| tcp\-md5\-key| tcp\-mss| tcp\-syn\-received\-timeout| tcp\-syn\-sent\-timeout| tcp\-syncookies| tcp\-time\-wait\-timeout| tcp_syncookies| tdma\-debug| tdma\-hw\-test\-mode| tdma\-override\-rate| tdma\-override\-size| tdma\-period\-size| tdma\-test\-mode| te\-metric| template| test\-audio| test\-id| threshold| time\-zone\-name| time\-zone| timeout\-timer| timeout| time| tls\-certificate| tls\-mode| tls| to\-addresses| to\-address| to\-arp\-reply\-mac\-address| to\-dst\-mac\-address| to\-ports| to\-src\-mac\-address| top\-bits| topics| total| to| traffic| transfer\-cause| transit\-area| translator\-role| transmit\-delay| transmit\-hash\-policy| transmit\-hold\-count| transparent\-proxy| transport\-address| transport| trap\-generators| trap\-target| trap\-version| trial\-uptime| trial\-user\-profile| trigger| trusted| ttl| tunnel\-id| tunnel| tx\-band| tx\-channel\-width| tx\-frequency| tx\-power\-mode| tx\-power| tx\-radio| tx\-template| type| udp\-stream\-timeout| udp\-timeout| unicast\-ciphers| unit| unpack| up\-delay| up\-flood\-thresholds| up\-script| update\-source| update\-stats\-interval| update\-timer| upload| uptime| url| usb\-version| use\-bfd| use\-compression| use\-control\-word| use\-cspf| use\-dn| use\-encryption| use\-explicit\-null| use\-ip\-firewall\-for\-pppoe| use\-ip\-firewall\-for\-vlan| use\-ip\-firewall| use\-mpls| use\-peer\-dns| use\-peer\-ntp| use\-radius| use\-service\-tag| use\-src\-mac| use\-udp| use\-vj\-compression| username| user| v3\-protocol| v9\-template\-refresh| v9\-template\-timeout| valid\-lifetime| valid\-server| valid| value| vendor\-id| vendor| verify\-client\-certificate| verify\-server\-address\-from\-certificate| verify\-server\-certificate| version| vlan\-encap| vlan\-header| vlan\-id| vlan\-mode| vlan\-priority| vpls\-id| vrid| watch\-address| watchdog\-timer| wds\-address| wds\-cost\-range| wds\-default\-bridge| wds\-default\-cost| wds\-ignore\-ssid| wds\-mode| wins\-server| wireless\-protocol| wmm\-support| wpa\-pre\-shared\-key| wpa2\-pre\-shared\-key| write\-access| xauth\-login| xauth\-password| zone| max\-limit| connection\-nat\-state| in\-interface\-list| out\-interface\-list| tls\-host| station\-roaming| wps\-mode| discover\-interface\-list| ddns\-enabled| dont\-require\-permissions| passthrough| numbers)\b(?!-)(([\s\t]*?)(=))?)
</string>
</dict>
</array>
</dict>
<key>string-escape</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\\"|\\\\|\\n|\\r|\\t|\\\$|\\\?|\\_|\\a|\\b|\\f|\\v|\\\h\h</string>
<key>name</key>
<string>constant.character.escape.mikrotik-script</string>
</dict>
</array>
</dict>
<key>string-expression</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>\$\(</string>
<key>end</key>
<string>\)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
<dict>
<key>include</key>
<string>#line-continuation</string>
</dict>
<dict>
<key>match</key>
<string>\n</string>
<key>name</key>
<string>invalid.illegal.newline.mikrotik-script</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\$\[</string>
<key>end</key>
<string>\]</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
<dict>
<key>include</key>
<string>#line-continuation</string>
</dict>
<dict>
<key>match</key>
<string>\n</string>
<key>name</key>
<string>invalid.illegal.newline.mikrotik-script</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>variable</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.mikrotik-script</string>
</dict>
</dict>
<key>match</key>
<string>(\$)([0-9a-zA-Z]+)</string>
<key>name</key>
<string>variable.other.mikrotik-script</string>
</dict>
<dict>
<key>begin</key>
<string>(\$)(\")</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.mikrotik-script</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.begin.mikrotik-script</string>
</dict>
</dict>
<key>end</key>
<string>\"</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.end.mikrotik-script</string>
</dict>
</dict>
<key>name</key>
<string>variable.other.mikrotik-script</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string-escape</string>
</dict>
<dict>
<key>include</key>
<string>#line-continuation</string>
</dict>
<dict>
<key>match</key>
<string>\n</string>
<key>name</key>
<string>invalid.illegal.newline.mikrotik-script</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>variable-definition</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.operator.other.mikrotik-script</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>storage.modifier.mikrotik-script</string>
</dict>
</dict>
<key>match</key>
<string>(\:)(global|local)\b</string>
</dict>
</array>
</dict>
</dict>
<key>scopeName</key>
<string>source.mikrotik-script</string>
<key>uuid</key>
<string>1a4e4c34-d9fb-4371-b819-9934ebed400c</string>
</dict>
</plist>