{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/routeros.js"],"names":["module","exports","hljs","STATEMENTS","LITERALS","VAR","className","variants","begin","QUOTE_STRING","end","contains","BACKSLASH_ESCAPE","APOS_STRING","name","aliases","case_insensitive","keywords","$pattern","literal","keyword","split","join","illegal","COMMENT","relevance","returnBegin","endsWithParent"],"mappings":"8EAmKAA,EAAOC,QAxJP,SAAkBC,GAChB,IAAIC,EAAa,mEAKbC,EAAW,qCAEXC,EAAM,CACRC,UAAW,WACXC,SAAU,CAAC,CACTC,MAAO,sBACN,CACDA,MAAO,gBAGPC,EAAe,CACjBH,UAAW,SACXE,MAAO,IACPE,IAAK,IACLC,SAAU,CAACT,EAAKU,iBAAkBP,EAAK,CACrCC,UAAW,WACXE,MAAO,OACPE,IAAK,KACLC,SAAU,CAACT,EAAKU,qBAGhBC,EAAc,CAChBP,UAAW,SACXE,MAAO,IACPE,IAAK,KAGP,MAAO,CACLI,KAAM,2BACNC,QAAS,CAAC,WAAY,YACtBC,kBAAkB,EAClBC,SAAU,CACRC,SAAU,WACVC,QAASf,EACTgB,QAASjB,EAAa,KAAOA,EAAWkB,MAAM,KAAKC,KAAK,MAAQ,KArC9C,mKAqCqED,MAAM,KAAKC,KAAK,OAEzGX,SAAU,CAAC,CAETJ,SAAU,CAAC,CACTC,MAAO,KACPE,IAAK,KAEP,CACEF,MAAO,OACPE,IAAK,QAEP,CACEF,MAAO,KACPE,IAAK,KAEP,CACEF,MAAO,KACPE,IAAK,KAEP,CACEF,MAAO,gBACPE,IAAK,KAEP,CACEF,MAAO,OACPE,IAAK,KAEP,CACEF,MAAO,QACPE,IAAK,SAEP,CACEF,MAAO,MACPE,IAAK,KAEP,CACEF,MAAO,UACPE,IAAK,MAEP,CACEF,MAAO,kBACPE,IAAK,MAGPa,QAAS,KACRrB,EAAKsB,QAAQ,KAAM,KAAMf,EAAcI,EAAaR,EAAK,CAE1DG,MAAO,+BACPiB,UAAW,EACXC,aAAa,EACbf,SAAU,CAAC,CACTL,UAAW,YACXE,MAAO,SACN,CACDA,MAAO,IACPmB,gBAAgB,EAChBF,UAAW,EACXd,SAAU,CAACF,EAAcI,EAAaR,EAAK,CACzCC,UAAW,UACXE,MAAO,OAASJ,EAASiB,MAAM,KAAKC,KAAK,KAAO,QAiBlD,CAGEd,MAAO,gCAMb,CAEEF,UAAW,SACXE,MAAO,kBAET,CACEA,MAAO,OA/HW,wFA+Hca,MAAM,KAAKC,KAAK,KAAO,eACvDI,aAAa,EACbf,SAAU,CAAC,CACTL,UAAW,eAEXE,MAAO,SAER,CACDF,UAAW,WACXC,SAAU,CAAC,CACTC,MAAO,oBAvIC,o7BAuI6Ba,MAAM,KAAKC,KAAK,KAAO,WAC5DG,UAAW,IACV,CACDjB,MAAO","file":"react-syntax-highlighter_languages_highlight_routeros-8345695fff69363e4b43.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// Colors from RouterOS terminal:\n//   green        - #0E9A00\n//   teal         - #0C9A9A\n//   purple       - #99069A\n//   light-brown  - #9A9900\nfunction routeros(hljs) {\n  var STATEMENTS = 'foreach do while for if from to step else on-error and or not in'; // Global commands: Every global command should start with \":\" token, otherwise it will be treated as variable.\n\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'; // Common commands: Following commands available from most sub-menus:\n\n  var COMMON_COMMANDS = 'add remove enable disable set get print export edit find run debug error info warning';\n  var LITERALS = 'true false yes no nothing nil null';\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  var VAR = {\n    className: 'variable',\n    variants: [{\n      begin: /\\$[\\w\\d#@][\\w\\d_]*/\n    }, {\n      begin: /\\$\\{(.*?)}/\n    }]\n  };\n  var QUOTE_STRING = {\n    className: 'string',\n    begin: /\"/,\n    end: /\"/,\n    contains: [hljs.BACKSLASH_ESCAPE, VAR, {\n      className: 'variable',\n      begin: /\\$\\(/,\n      end: /\\)/,\n      contains: [hljs.BACKSLASH_ESCAPE]\n    }]\n  };\n  var APOS_STRING = {\n    className: 'string',\n    begin: /'/,\n    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: /^@/,\n        end: /$/\n      }, // dns\n      {\n        begin: /\\/\\*/,\n        end: /\\*\\//\n      }, // -- comment\n      {\n        begin: /%%/,\n        end: /$/\n      }, // -- comment\n      {\n        begin: /^'/,\n        end: /$/\n      }, // Monkey one line comment\n      {\n        begin: /^\\s*\\/[\\w-]+=/,\n        end: /$/\n      }, // jboss-cli\n      {\n        begin: /\\/\\//,\n        end: /$/\n      }, // Stan comment\n      {\n        begin: /^\\[\\</,\n        end: /\\>\\]$/\n      }, // F# class declaration?\n      {\n        begin: /<\\//,\n        end: />/\n      }, // HTML tags\n      {\n        begin: /^facet /,\n        end: /\\}/\n      }, // roboconf - лютый костыль )))\n      {\n        begin: '^1\\\\.\\\\.(\\\\d+)$',\n        end: /$/\n      } // tap\n      ],\n      illegal: /./\n    }, hljs.COMMENT('^#', '$'), QUOTE_STRING, APOS_STRING, VAR, {\n      // attribute=value\n      begin: /[\\w-]+\\=([^\\s\\{\\}\\[\\]\\(\\)]+)/,\n      relevance: 0,\n      returnBegin: true,\n      contains: [{\n        className: 'attribute',\n        begin: /[^=]+/\n      }, {\n        begin: /=/,\n        endsWithParent: true,\n        relevance: 0,\n        contains: [QUOTE_STRING, APOS_STRING, VAR, {\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        /*{\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      begin: '\\\\b(' + COMMON_COMMANDS.split(' ').join('|') + ')([\\\\s\\[\\(]|\\])',\n      returnBegin: true,\n      contains: [{\n        className: 'builtin-name',\n        //'function',\n        begin: /\\w+/\n      }]\n    }, {\n      className: 'built_in',\n      variants: [{\n        begin: '(\\\\.\\\\./|/|\\\\s)((' + OBJECTS.split(' ').join('|') + ');?\\\\s)+',\n        relevance: 10\n      }, {\n        begin: /\\.\\./\n      }]\n    } //*/\n    ]\n  };\n}\n\nmodule.exports = routeros;"],"sourceRoot":""}