1{"version":3,"sources":["../../node_modules/codemirror/mode/rst/rst.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","config","options","rx_strong","rx_emphasis","rx_literal","rx_number","rx_positive","rx_negative","rx_uri_protocol","rx_uri_domain","rx_uri_path","rx_uri","RegExp","overlay","token","stream","match","next","mode","getMode","backdrop","overlayMode","format","string","args","Array","prototype","slice","call","arguments","replace","n","mode_python","mode_stex","SEPA","TAIL","rx_TAIL","NAME","rx_NAME","NAME_WWS","REF_NAME","TEXT1","TEXT2","rx_TEXT2","rx_section","rx_explicit","rx_link","rx_directive","rx_substitution","rx_footnote","rx_citation","rx_substitution_ref","rx_footnote_ref","rx_citation_ref","rx_link_ref1","rx_link_ref2","rx_role_pre","rx_role_suf","rx_role","rx_directive_name","rx_directive_tail","rx_substitution_text","rx_substitution_sepa","rx_substitution_name","rx_substitution_tail","rx_link_head","rx_link_name","rx_link_tail","rx_verbatim","rx_examples","to_normal","state","sol","change","to_mode","local","startState","to_explicit","phase","stage","context","current","tmp_stex","undefined","tmp","peek","to_verbatim","tmp_py","eatSpace","eol","skipToEnd","to_comment","as_block","ctx","tok","copyState","innerMode","defineMIME"],"mappings":"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","file":"rst.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../python/python\"), require(\"../stex/stex\"), require(\"../../addon/mode/overlay\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../python/python\", \"../stex/stex\", \"../../addon/mode/overlay\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('rst', function (config, options) {\n\n  var rx_strong = /^\\*\\*[^\\*\\s](?:[^\\*]*[^\\*\\s])?\\*\\*/;\n  var rx_emphasis = /^\\*[^\\*\\s](?:[^\\*]*[^\\*\\s])?\\*/;\n  var rx_literal = /^``[^`\\s](?:[^`]*[^`\\s])``/;\n\n  var rx_number = /^(?:[\\d]+(?:[\\.,]\\d+)*)/;\n  var rx_positive = /^(?:\\s\\+[\\d]+(?:[\\.,]\\d+)*)/;\n  var rx_negative = /^(?:\\s\\-[\\d]+(?:[\\.,]\\d+)*)/;\n\n  var rx_uri_protocol = \"[Hh][Tt][Tt][Pp][Ss]?://\";\n  var rx_uri_domain = \"(?:[\\\\d\\\\w.-]+)\\\\.(?:\\\\w{2,6})\";\n  var rx_uri_path = \"(?:/[\\\\d\\\\w\\\\#\\\\%\\\\&\\\\-\\\\.\\\\,\\\\/\\\\:\\\\=\\\\?\\\\~]+)*\";\n  var rx_uri = new RegExp(\"^\" + rx_uri_protocol + rx_uri_domain + rx_uri_path);\n\n  var overlay = {\n    token: function (stream) {\n\n      if (stream.match(rx_strong) && stream.match (/\\W+|$/, false))\n        return 'strong';\n      if (stream.match(rx_emphasis) && stream.match (/\\W+|$/, false))\n        return 'em';\n      if (stream.match(rx_literal) && stream.match (/\\W+|$/, false))\n        return 'string-2';\n      if (stream.match(rx_number))\n        return 'number';\n      if (stream.match(rx_positive))\n        return 'positive';\n      if (stream.match(rx_negative))\n        return 'negative';\n      if (stream.match(rx_uri))\n        return 'link';\n\n      while (stream.next() != null) {\n        if (stream.match(rx_strong, false)) break;\n        if (stream.match(rx_emphasis, false)) break;\n        if (stream.match(rx_literal, false)) break;\n        if (stream.match(rx_number, false)) break;\n        if (stream.match(rx_positive, false)) break;\n        if (stream.match(rx_negative, false)) break;\n        if (stream.match(rx_uri, false)) break;\n      }\n\n      return null;\n    }\n  };\n\n  var mode = CodeMirror.getMode(\n    config, options.backdrop || 'rst-base'\n  );\n\n  return CodeMirror.overlayMode(mode, overlay, true); // combine\n}, 'python', 'stex');\n\n///////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////////////////////////////////////////////////\n\nCodeMirror.defineMode('rst-base', function (config) {\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function format(string) {\n    var args = Array.prototype.slice.call(arguments, 1);\n    return string.replace(/{(\\d+)}/g, function (match, n) {\n      return typeof args[n] != 'undefined' ? args[n] : match;\n    });\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  var mode_python = CodeMirror.getMode(config, 'python');\n  var mode_stex = CodeMirror.getMode(config, 'stex');\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  var SEPA = \"\\\\s+\";\n  var TAIL = \"(?:\\\\s*|\\\\W|$)\",\n  rx_TAIL = new RegExp(format('^{0}', TAIL));\n\n  var NAME =\n    \"(?:[^\\\\W\\\\d_](?:[\\\\w!\\\"#$%&'()\\\\*\\\\+,\\\\-\\\\.\\/:;<=>\\\\?]*[^\\\\W_])?)\",\n  rx_NAME = new RegExp(format('^{0}', NAME));\n  var NAME_WWS =\n    \"(?:[^\\\\W\\\\d_](?:[\\\\w\\\\s!\\\"#$%&'()\\\\*\\\\+,\\\\-\\\\.\\/:;<=>\\\\?]*[^\\\\W_])?)\";\n  var REF_NAME = format('(?:{0}|`{1}`)', NAME, NAME_WWS);\n\n  var TEXT1 = \"(?:[^\\\\s\\\\|](?:[^\\\\|]*[^\\\\s\\\\|])?)\";\n  var TEXT2 = \"(?:[^\\\\`]+)\",\n  rx_TEXT2 = new RegExp(format('^{0}', TEXT2));\n\n  var rx_section = new RegExp(\n    \"^([!'#$%&\\\"()*+,-./:;<=>?@\\\\[\\\\\\\\\\\\]^_`{|}~])\\\\1{3,}\\\\s*$\");\n  var rx_explicit = new RegExp(\n    format('^\\\\.\\\\.{0}', SEPA));\n  var rx_link = new RegExp(\n    format('^_{0}:{1}|^__:{1}', REF_NAME, TAIL));\n  var rx_directive = new RegExp(\n    format('^{0}::{1}', REF_NAME, TAIL));\n  var rx_substitution = new RegExp(\n    format('^\\\\|{0}\\\\|{1}{2}::{3}', TEXT1, SEPA, REF_NAME, TAIL));\n  var rx_footnote = new RegExp(\n    format('^\\\\[(?:\\\\d+|#{0}?|\\\\*)]{1}', REF_NAME, TAIL));\n  var rx_citation = new RegExp(\n    format('^\\\\[{0}\\\\]{1}', REF_NAME, TAIL));\n\n  var rx_substitution_ref = new RegExp(\n    format('^\\\\|{0}\\\\|', TEXT1));\n  var rx_footnote_ref = new RegExp(\n    format('^\\\\[(?:\\\\d+|#{0}?|\\\\*)]_', REF_NAME));\n  var rx_citation_ref = new RegExp(\n    format('^\\\\[{0}\\\\]_', REF_NAME));\n  var rx_link_ref1 = new RegExp(\n    format('^{0}__?', REF_NAME));\n  var rx_link_ref2 = new RegExp(\n    format('^`{0}`_', TEXT2));\n\n  var rx_role_pre = new RegExp(\n    format('^:{0}:`{1}`{2}', NAME, TEXT2, TAIL));\n  var rx_role_suf = new RegExp(\n    format('^`{1}`:{0}:{2}', NAME, TEXT2, TAIL));\n  var rx_role = new RegExp(\n    format('^:{0}:{1}', NAME, TAIL));\n\n  var rx_directive_name = new RegExp(format('^{0}', REF_NAME));\n  var rx_directive_tail = new RegExp(format('^::{0}', TAIL));\n  var rx_substitution_text = new RegExp(format('^\\\\|{0}\\\\|', TEXT1));\n  var rx_substitution_sepa = new RegExp(format('^{0}', SEPA));\n  var rx_substitution_name = new RegExp(format('^{0}', REF_NAME));\n  var rx_substitution_tail = new RegExp(format('^::{0}', TAIL));\n  var rx_link_head = new RegExp(\"^_\");\n  var rx_link_name = new RegExp(format('^{0}|_', REF_NAME));\n  var rx_link_tail = new RegExp(format('^:{0}', TAIL));\n\n  var rx_verbatim = new RegExp('^::\\\\s*$');\n  var rx_examples = new RegExp('^\\\\s+(?:>>>|In \\\\[\\\\d+\\\\]:)\\\\s');\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function to_normal(stream, state) {\n    var token = null;\n\n    if (stream.sol() && stream.match(rx_examples, false)) {\n      change(state, to_mode, {\n        mode: mode_python, local: CodeMirror.startState(mode_python)\n      });\n    } else if (stream.sol() && stream.match(rx_explicit)) {\n      change(state, to_explicit);\n      token = 'meta';\n    } else if (stream.sol() && stream.match(rx_section)) {\n      change(state, to_normal);\n      token = 'header';\n    } else if (phase(state) == rx_role_pre ||\n               stream.match(rx_role_pre, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_normal, context(rx_role_pre, 1));\n        stream.match(/^:/);\n        token = 'meta';\n        break;\n      case 1:\n        change(state, to_normal, context(rx_role_pre, 2));\n        stream.match(rx_NAME);\n        token = 'keyword';\n\n        if (stream.current().match(/^(?:math|latex)/)) {\n          state.tmp_stex = true;\n        }\n        break;\n      case 2:\n        change(state, to_normal, context(rx_role_pre, 3));\n        stream.match(/^:`/);\n        token = 'meta';\n        break;\n      case 3:\n        if (state.tmp_stex) {\n          state.tmp_stex = undefined; state.tmp = {\n            mode: mode_stex, local: CodeMirror.startState(mode_stex)\n          };\n        }\n\n        if (state.tmp) {\n          if (stream.peek() == '`') {\n            change(state, to_normal, context(rx_role_pre, 4));\n            state.tmp = undefined;\n            break;\n          }\n\n          token = state.tmp.mode.token(stream, state.tmp.local);\n          break;\n        }\n\n        change(state, to_normal, context(rx_role_pre, 4));\n        stream.match(rx_TEXT2);\n        token = 'string';\n        break;\n      case 4:\n        change(state, to_normal, context(rx_role_pre, 5));\n        stream.match(/^`/);\n        token = 'meta';\n        break;\n      case 5:\n        change(state, to_normal, context(rx_role_pre, 6));\n        stream.match(rx_TAIL);\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_role_suf ||\n               stream.match(rx_role_suf, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_normal, context(rx_role_suf, 1));\n        stream.match(/^`/);\n        token = 'meta';\n        break;\n      case 1:\n        change(state, to_normal, context(rx_role_suf, 2));\n        stream.match(rx_TEXT2);\n        token = 'string';\n        break;\n      case 2:\n        change(state, to_normal, context(rx_role_suf, 3));\n        stream.match(/^`:/);\n        token = 'meta';\n        break;\n      case 3:\n        change(state, to_normal, context(rx_role_suf, 4));\n        stream.match(rx_NAME);\n        token = 'keyword';\n        break;\n      case 4:\n        change(state, to_normal, context(rx_role_suf, 5));\n        stream.match(/^:/);\n        token = 'meta';\n        break;\n      case 5:\n        change(state, to_normal, context(rx_role_suf, 6));\n        stream.match(rx_TAIL);\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_role || stream.match(rx_role, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_normal, context(rx_role, 1));\n        stream.match(/^:/);\n        token = 'meta';\n        break;\n      case 1:\n        change(state, to_normal, context(rx_role, 2));\n        stream.match(rx_NAME);\n        token = 'keyword';\n        break;\n      case 2:\n        change(state, to_normal, context(rx_role, 3));\n        stream.match(/^:/);\n        token = 'meta';\n        break;\n      case 3:\n        change(state, to_normal, context(rx_role, 4));\n        stream.match(rx_TAIL);\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_substitution_ref ||\n               stream.match(rx_substitution_ref, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_normal, context(rx_substitution_ref, 1));\n        stream.match(rx_substitution_text);\n        token = 'variable-2';\n        break;\n      case 1:\n        change(state, to_normal, context(rx_substitution_ref, 2));\n        if (stream.match(/^_?_?/)) token = 'link';\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (stream.match(rx_footnote_ref)) {\n      change(state, to_normal);\n      token = 'quote';\n    } else if (stream.match(rx_citation_ref)) {\n      change(state, to_normal);\n      token = 'quote';\n    } else if (stream.match(rx_link_ref1)) {\n      change(state, to_normal);\n      if (!stream.peek() || stream.peek().match(/^\\W$/)) {\n        token = 'link';\n      }\n    } else if (phase(state) == rx_link_ref2 ||\n               stream.match(rx_link_ref2, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        if (!stream.peek() || stream.peek().match(/^\\W$/)) {\n          change(state, to_normal, context(rx_link_ref2, 1));\n        } else {\n          stream.match(rx_link_ref2);\n        }\n        break;\n      case 1:\n        change(state, to_normal, context(rx_link_ref2, 2));\n        stream.match(/^`/);\n        token = 'link';\n        break;\n      case 2:\n        change(state, to_normal, context(rx_link_ref2, 3));\n        stream.match(rx_TEXT2);\n        break;\n      case 3:\n        change(state, to_normal, context(rx_link_ref2, 4));\n        stream.match(/^`_/);\n        token = 'link';\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (stream.match(rx_verbatim)) {\n      change(state, to_verbatim);\n    }\n\n    else {\n      if (stream.next()) change(state, to_normal);\n    }\n\n    return token;\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function to_explicit(stream, state) {\n    var token = null;\n\n    if (phase(state) == rx_substitution ||\n        stream.match(rx_substitution, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_explicit, context(rx_substitution, 1));\n        stream.match(rx_substitution_text);\n        token = 'variable-2';\n        break;\n      case 1:\n        change(state, to_explicit, context(rx_substitution, 2));\n        stream.match(rx_substitution_sepa);\n        break;\n      case 2:\n        change(state, to_explicit, context(rx_substitution, 3));\n        stream.match(rx_substitution_name);\n        token = 'keyword';\n        break;\n      case 3:\n        change(state, to_explicit, context(rx_substitution, 4));\n        stream.match(rx_substitution_tail);\n        token = 'meta';\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_directive ||\n               stream.match(rx_directive, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_explicit, context(rx_directive, 1));\n        stream.match(rx_directive_name);\n        token = 'keyword';\n\n        if (stream.current().match(/^(?:math|latex)/))\n          state.tmp_stex = true;\n        else if (stream.current().match(/^python/))\n          state.tmp_py = true;\n        break;\n      case 1:\n        change(state, to_explicit, context(rx_directive, 2));\n        stream.match(rx_directive_tail);\n        token = 'meta';\n\n        if (stream.match(/^latex\\s*$/) || state.tmp_stex) {\n          state.tmp_stex = undefined; change(state, to_mode, {\n            mode: mode_stex, local: CodeMirror.startState(mode_stex)\n          });\n        }\n        break;\n      case 2:\n        change(state, to_explicit, context(rx_directive, 3));\n        if (stream.match(/^python\\s*$/) || state.tmp_py) {\n          state.tmp_py = undefined; change(state, to_mode, {\n            mode: mode_python, local: CodeMirror.startState(mode_python)\n          });\n        }\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_link || stream.match(rx_link, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_explicit, context(rx_link, 1));\n        stream.match(rx_link_head);\n        stream.match(rx_link_name);\n        token = 'link';\n        break;\n      case 1:\n        change(state, to_explicit, context(rx_link, 2));\n        stream.match(rx_link_tail);\n        token = 'meta';\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (stream.match(rx_footnote)) {\n      change(state, to_normal);\n      token = 'quote';\n    } else if (stream.match(rx_citation)) {\n      change(state, to_normal);\n      token = 'quote';\n    }\n\n    else {\n      stream.eatSpace();\n      if (stream.eol()) {\n        change(state, to_normal);\n      } else {\n        stream.skipToEnd();\n        change(state, to_comment);\n        token = 'comment';\n      }\n    }\n\n    return token;\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function to_comment(stream, state) {\n    return as_block(stream, state, 'comment');\n  }\n\n  function to_verbatim(stream, state) {\n    return as_block(stream, state, 'meta');\n  }\n\n  function as_block(stream, state, token) {\n    if (stream.eol() || stream.eatSpace()) {\n      stream.skipToEnd();\n      return token;\n    } else {\n      change(state, to_normal);\n      return null;\n    }\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function to_mode(stream, state) {\n\n    if (state.ctx.mode && state.ctx.local) {\n\n      if (stream.sol()) {\n        if (!stream.eatSpace()) change(state, to_normal);\n        return null;\n      }\n\n      return state.ctx.mode.token(stream, state.ctx.local);\n    }\n\n    change(state, to_normal);\n    return null;\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function context(phase, stage, mode, local) {\n    return {phase: phase, stage: stage, mode: mode, local: local};\n  }\n\n  function change(state, tok, ctx) {\n    state.tok = tok;\n    state.ctx = ctx || {};\n  }\n\n  function stage(state) {\n    return state.ctx.stage || 0;\n  }\n\n  function phase(state) {\n    return state.ctx.phase;\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  return {\n    startState: function () {\n      return {tok: to_normal, ctx: context(undefined, 0)};\n    },\n\n    copyState: function (state) {\n      var ctx = state.ctx, tmp = state.tmp;\n      if (ctx.local)\n        ctx = {mode: ctx.mode, local: CodeMirror.copyState(ctx.mode, ctx.local)};\n      if (tmp)\n        tmp = {mode: tmp.mode, local: CodeMirror.copyState(tmp.mode, tmp.local)};\n      return {tok: state.tok, ctx: ctx, tmp: tmp};\n    },\n\n    innerMode: function (state) {\n      return state.tmp      ? {state: state.tmp.local, mode: state.tmp.mode}\n      : state.ctx.mode ? {state: state.ctx.local, mode: state.ctx.mode}\n      : null;\n    },\n\n    token: function (stream, state) {\n      return state.tok(stream, state);\n    }\n  };\n}, 'python', 'stex');\n\n///////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////////////////////////////////////////////////\n\nCodeMirror.defineMIME('text/x-rst', 'rst');\n\n///////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////////////////////////////////////////////////\n\n});\n"]}