UNPKG

2.5 kBJavaScriptView Raw
1hljs.registerLanguage("routeros",(()=>{"use strict";return e=>{
2const r="foreach do while for if from to step else on-error and or not in",n="true false yes no nothing nil null",i={
3className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)\}/
4}]},s={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i,{
5className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]}]},t={
6className:"string",begin:/'/,end:/'/};return{name:"Microtik RouterOS script",
7aliases:["routeros","mikrotik"],case_insensitive:!0,keywords:{
8$pattern:/:?[\w-]+/,literal:n,
9keyword:r+" :"+r.split(" ").join(" :")+" :"+"global local beep delay put len typeof pick log time set find environment terminal error execute parse resolve toarray tobool toid toip toip6 tonum tostr totime".split(" ").join(" :")
10},contains:[{variants:[{begin:/\/\*/,end:/\*\//},{begin:/\/\//,end:/$/},{
11begin:/<\//,end:/>/}],illegal:/./},e.COMMENT("^#","$"),s,t,i,{
12begin:/[\w-]+=([^\s{}[\]()]+)/,relevance:0,returnBegin:!0,contains:[{
13className:"attribute",begin:/[^=]+/},{begin:/=/,endsWithParent:!0,relevance:0,
14contains:[s,t,i,{className:"literal",begin:"\\b("+n.split(" ").join("|")+")\\b"
15},{begin:/("[^"]*"|[^\s{}[\]]+)/}]}]},{className:"number",begin:/\*[0-9a-fA-F]+/
16},{
17begin:"\\b(add|remove|enable|disable|set|get|print|export|edit|find|run|debug|error|info|warning)([\\s[(\\]|])",
18returnBegin:!0,contains:[{className:"builtin-name",begin:/\w+/}]},{
19className:"built_in",variants:[{
20begin:"(\\.\\./|/|\\s)((traffic-flow|traffic-generator|firewall|scheduler|aaa|accounting|address-list|address|align|area|bandwidth-server|bfd|bgp|bridge|client|clock|community|config|connection|console|customer|default|dhcp-client|dhcp-server|discovery|dns|e-mail|ethernet|filter|firmware|gps|graphing|group|hardware|health|hotspot|identity|igmp-proxy|incoming|instance|interface|ip|ipsec|ipv6|irq|l2tp-server|lcd|ldp|logging|mac-server|mac-winbox|mangle|manual|mirror|mme|mpls|nat|nd|neighbor|network|note|ntp|ospf|ospf-v3|ovpn-server|page|peer|pim|ping|policy|pool|port|ppp|pppoe-client|pptp-server|prefix|profile|proposal|proxy|queue|radius|resource|rip|ripng|route|routing|screen|script|security-profiles|server|service|service-port|settings|shares|smb|sms|sniffer|snmp|snooper|socks|sstp-server|system|tool|tracking|type|upgrade|upnp|user-manager|users|user|vlan|secret|vrrp|watchdog|web-access|wireless|pptp|pppoe|lan|wan|layer7-protocol|lease|simple|raw);?\\s)+"
21},{begin:/\.\./,relevance:0}]}]}}})());
\No newline at end of file