{"version":3,"sources":["webpack://lib/./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/routeros.js"],"names":[],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO,4BAA4B;AACnC,OAAO,YAAY,MAAM;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,OAAO;AACP;AACA,WAAW,yBAAyB;AACpC,WAAW,8BAA8B;AACzC,WAAW,yBAAyB;AACpC,WAAW,yBAAyB;AACpC,WAAW,oCAAoC;AAC/C,WAAW,2BAA2B;AACtC,WAAW,gCAAgC;AAC3C,WAAW,0BAA0B;AACrC,WAAW,2BAA2B,IAAI;AAC1C,WAAW,sCAAsC;AACjD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,mBAAmB,iDAAiD;AACpE,mBAAmB,yBAAyB;AAC5C,mBAAmB,+BAA+B;AAClD;AACA,eAAe;AACf;AACA;AACA;AACA,4CAA4C,IAAI,MAAM,EAAE,cAAc,IAAI;AAC1E,eAAe;AACf;AACA;AACA;AACA,uCAAuC,EAAE;AACzC,eAAe;AACf;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;;AAEP;AACA;AACA;AACA,WAAW,+DAA+D,uBAAuB;AACjG,WAAW,eAAe;AAC1B;AACA,OAAO;AACP;AACA;AACA;;AAEA","file":"react-syntax-highlighter_languages_highlight_routeros.render-page.js","sourcesContent":["/*\nLanguage: Microtik RouterOS script\nAuthor: Ivan Dementev <ivan_div@mail.ru>\nDescription: Scripting host provides a way to automate some router maintenance tasks by means of executing user-defined scripts bounded to some event occurrence\nWebsite: https://wiki.mikrotik.com/wiki/Manual:Scripting\n*/\n\n// Colors from RouterOS terminal:\n//   green        - #0E9A00\n//   teal         - #0C9A9A\n//   purple       - #99069A\n//   light-brown  - #9A9900\n\nfunction routeros(hljs) {\n\n  var STATEMENTS = 'foreach do while for if from to step else on-error and or not in';\n\n  // Global commands: Every global command should start with \":\" token, otherwise it will be treated as variable.\n  var GLOBAL_COMMANDS = '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';\n\n  // Common commands: Following commands available from most sub-menus:\n  var COMMON_COMMANDS = 'add remove enable disable set get print export edit find run debug error info warning';\n\n  var LITERALS = 'true false yes no nothing nil null';\n\n  var OBJECTS = '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 firewall 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';\n\n  var VAR = {\n    className: 'variable',\n    variants: [\n      {begin: /\\$[\\w\\d#@][\\w\\d_]*/},\n      {begin: /\\$\\{(.*?)}/}\n    ]\n  };\n\n  var QUOTE_STRING = {\n    className: 'string',\n    begin: /\"/, end: /\"/,\n    contains: [\n      hljs.BACKSLASH_ESCAPE,\n      VAR,\n      {\n        className: 'variable',\n        begin: /\\$\\(/, end: /\\)/,\n        contains: [hljs.BACKSLASH_ESCAPE]\n      }\n    ]\n  };\n\n  var APOS_STRING = {\n    className: 'string',\n    begin: /'/, end: /'/\n  };\n  //////////////////////////////////////////////////////////////////////\n  return {\n    name: 'Microtik RouterOS script',\n    aliases: ['routeros', 'mikrotik'],\n    case_insensitive: true,\n    keywords: {\n      $pattern: /:?[\\w-]+/,\n      literal: LITERALS,\n      keyword: STATEMENTS + ' :' + STATEMENTS.split(' ').join(' :') + ' :' + GLOBAL_COMMANDS.split(' ').join(' :'),\n    },\n    contains: [\n      { // недопустимые конструкции\n        variants: [\n          { begin: /^@/, end: /$/, },               // dns\n          { begin: /\\/\\*/, end: /\\*\\//, },          // -- comment\n          { begin: /%%/, end: /$/, },               // -- comment\n          { begin: /^'/, end: /$/, },               // Monkey one line comment\n          { begin: /^\\s*\\/[\\w-]+=/, end: /$/, },    // jboss-cli\n          { begin: /\\/\\//, end: /$/, },             // Stan comment\n          { begin: /^\\[\\</, end: /\\>\\]$/, },        // F# class declaration?\n          { begin: /<\\//, end: />/, },              // HTML tags\n          { begin: /^facet /, end: /\\}/, },         // roboconf - лютый костыль )))\n          { begin: '^1\\\\.\\\\.(\\\\d+)$', end: /$/, },  // tap\n        ],\n        illegal: /./,\n      },\n      hljs.COMMENT('^#', '$'),\n      QUOTE_STRING,\n      APOS_STRING,\n      VAR,\n      { // attribute=value\n        begin: /[\\w-]+\\=([^\\s\\{\\}\\[\\]\\(\\)]+)/,\n        relevance: 0,\n        returnBegin: true,\n        contains: [\n          {\n            className: 'attribute',\n            begin: /[^=]+/\n          },\n          {\n            begin: /=/,\n            endsWithParent:  true,\n            relevance: 0,\n            contains: [\n              QUOTE_STRING,\n              APOS_STRING,\n              VAR,\n              {\n                className: 'literal',\n                begin: '\\\\b(' + LITERALS.split(' ').join('|') + ')\\\\b',\n              },\n              /*{\n                // IPv4 addresses and subnets\n                className: 'number',\n                variants: [\n                  {begin: IPADDR_wBITMASK+'(,'+IPADDR_wBITMASK+')*'}, //192.168.0.0/24,1.2.3.0/24\n                  {begin: IPADDR+'-'+IPADDR},       // 192.168.0.1-192.168.0.3\n                  {begin: IPADDR+'(,'+IPADDR+')*'}, // 192.168.0.1,192.168.0.34,192.168.24.1,192.168.0.1\n                ]\n              }, // */\n              /*{\n                // MAC addresses and DHCP Client IDs\n                className: 'number',\n                begin: /\\b(1:)?([0-9A-Fa-f]{1,2}[:-]){5}([0-9A-Fa-f]){1,2}\\b/,\n              }, //*/\n              {\n                // Не форматировать не классифицированные значения. Необходимо для исключения подсветки значений как built_in.\n                // className: 'number',\n                begin: /(\"[^\"]*\"|[^\\s\\{\\}\\[\\]]+)/,\n              }, //*/\n            ]\n          } //*/\n        ]\n      },//*/\n      {\n        // HEX values\n        className: 'number',\n        begin: /\\*[0-9a-fA-F]+/,\n      }, //*/\n\n      {\n        begin: '\\\\b(' + COMMON_COMMANDS.split(' ').join('|') + ')([\\\\s\\[\\(]|\\])',\n        returnBegin: true,\n        contains: [\n          {\n            className: 'builtin-name', //'function',\n            begin: /\\w+/,\n          },\n        ],\n      },\n\n      {\n        className: 'built_in',\n        variants: [\n          {begin: '(\\\\.\\\\./|/|\\\\s)((' + OBJECTS.split(' ').join('|') + ');?\\\\s)+',relevance: 10,},\n          {begin: /\\.\\./,},\n        ],\n      },//*/\n    ]\n  };\n}\n\nmodule.exports = routeros;\n"],"sourceRoot":""}