1{"version":3,"sources":["../../node_modules/codemirror/mode/mscgen/mscgen.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","languages","mscgen","keywords","options","constants","attributes","brackets","arcsWords","arcsOthers","singlecomment","operators","xu","msgenny","defineMode","_","modeConfig","language","startState","startStateFn","copyState","copyStateFn","token","produceTokenFunction","lineComment","blockCommentStart","blockCommentEnd","defineMIME","name","wordRegexpBoundary","pWords","RegExp","join","wordRegexp","inComment","inString","inAttributeList","inScript","pState","pConfig","pStream","match","skipToEnd","next"],"mappings":"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","file":"mscgen.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// mode(s) for the sequence chart dsl's mscgen, xù and msgenny\n// For more information on mscgen, see the site of the original author:\n// http://www.mcternan.me.uk/mscgen\n//\n// This mode for mscgen and the two derivative languages were\n// originally made for use in the mscgen_js interpreter\n// (https://sverweij.github.io/mscgen_js)\n\n(function(mod) {\n  if ( typeof exports == \"object\" && typeof module == \"object\")// CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if ( typeof define == \"function\" && define.amd)// AMD\n    define([\"../../lib/codemirror\"], mod);\n  else// Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var languages = {\n    mscgen: {\n      \"keywords\" : [\"msc\"],\n      \"options\" : [\"hscale\", \"width\", \"arcgradient\", \"wordwraparcs\"],\n      \"constants\" : [\"true\", \"false\", \"on\", \"off\"],\n      \"attributes\" : [\"label\", \"idurl\", \"id\", \"url\", \"linecolor\", \"linecolour\", \"textcolor\", \"textcolour\", \"textbgcolor\", \"textbgcolour\", \"arclinecolor\", \"arclinecolour\", \"arctextcolor\", \"arctextcolour\", \"arctextbgcolor\", \"arctextbgcolour\", \"arcskip\"],\n      \"brackets\" : [\"\\\\{\", \"\\\\}\"], // [ and  ] are brackets too, but these get handled in with lists\n      \"arcsWords\" : [\"note\", \"abox\", \"rbox\", \"box\"],\n      \"arcsOthers\" : [\"\\\\|\\\\|\\\\|\", \"\\\\.\\\\.\\\\.\", \"---\", \"--\", \"<->\", \"==\", \"<<=>>\", \"<=>\", \"\\\\.\\\\.\", \"<<>>\", \"::\", \"<:>\", \"->\", \"=>>\", \"=>\", \">>\", \":>\", \"<-\", \"<<=\", \"<=\", \"<<\", \"<:\", \"x-\", \"-x\"],\n      \"singlecomment\" : [\"//\", \"#\"],\n      \"operators\" : [\"=\"]\n    },\n    xu: {\n      \"keywords\" : [\"msc\", \"xu\"],\n      \"options\" : [\"hscale\", \"width\", \"arcgradient\", \"wordwraparcs\", \"wordwrapentities\", \"watermark\"],\n      \"constants\" : [\"true\", \"false\", \"on\", \"off\", \"auto\"],\n      \"attributes\" : [\"label\", \"idurl\", \"id\", \"url\", \"linecolor\", \"linecolour\", \"textcolor\", \"textcolour\", \"textbgcolor\", \"textbgcolour\", \"arclinecolor\", \"arclinecolour\", \"arctextcolor\", \"arctextcolour\", \"arctextbgcolor\", \"arctextbgcolour\", \"arcskip\", \"title\", \"deactivate\", \"activate\", \"activation\"],\n      \"brackets\" : [\"\\\\{\", \"\\\\}\"],  // [ and  ] are brackets too, but these get handled in with lists\n      \"arcsWords\" : [\"note\", \"abox\", \"rbox\", \"box\", \"alt\", \"else\", \"opt\", \"break\", \"par\", \"seq\", \"strict\", \"neg\", \"critical\", \"ignore\", \"consider\", \"assert\", \"loop\", \"ref\", \"exc\"],\n      \"arcsOthers\" : [\"\\\\|\\\\|\\\\|\", \"\\\\.\\\\.\\\\.\", \"---\", \"--\", \"<->\", \"==\", \"<<=>>\", \"<=>\", \"\\\\.\\\\.\", \"<<>>\", \"::\", \"<:>\", \"->\", \"=>>\", \"=>\", \">>\", \":>\", \"<-\", \"<<=\", \"<=\", \"<<\", \"<:\", \"x-\", \"-x\"],\n      \"singlecomment\" : [\"//\", \"#\"],\n      \"operators\" : [\"=\"]\n    },\n    msgenny: {\n      \"keywords\" : null,\n      \"options\" : [\"hscale\", \"width\", \"arcgradient\", \"wordwraparcs\", \"wordwrapentities\", \"watermark\"],\n      \"constants\" : [\"true\", \"false\", \"on\", \"off\", \"auto\"],\n      \"attributes\" : null,\n      \"brackets\" : [\"\\\\{\", \"\\\\}\"],\n      \"arcsWords\" : [\"note\", \"abox\", \"rbox\", \"box\", \"alt\", \"else\", \"opt\", \"break\", \"par\", \"seq\", \"strict\", \"neg\", \"critical\", \"ignore\", \"consider\", \"assert\", \"loop\", \"ref\", \"exc\"],\n      \"arcsOthers\" : [\"\\\\|\\\\|\\\\|\", \"\\\\.\\\\.\\\\.\", \"---\", \"--\", \"<->\", \"==\", \"<<=>>\", \"<=>\", \"\\\\.\\\\.\", \"<<>>\", \"::\", \"<:>\", \"->\", \"=>>\", \"=>\", \">>\", \":>\", \"<-\", \"<<=\", \"<=\", \"<<\", \"<:\", \"x-\", \"-x\"],\n      \"singlecomment\" : [\"//\", \"#\"],\n      \"operators\" : [\"=\"]\n    }\n  }\n\n  CodeMirror.defineMode(\"mscgen\", function(_, modeConfig) {\n    var language = languages[modeConfig && modeConfig.language || \"mscgen\"]\n    return {\n      startState: startStateFn,\n      copyState: copyStateFn,\n      token: produceTokenFunction(language),\n      lineComment : \"#\",\n      blockCommentStart : \"/*\",\n      blockCommentEnd : \"*/\"\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-mscgen\", \"mscgen\");\n  CodeMirror.defineMIME(\"text/x-xu\", {name: \"mscgen\", language: \"xu\"});\n  CodeMirror.defineMIME(\"text/x-msgenny\", {name: \"mscgen\", language: \"msgenny\"});\n\n  function wordRegexpBoundary(pWords) {\n    return new RegExp(\"\\\\b(\" + pWords.join(\"|\") + \")\\\\b\", \"i\");\n  }\n\n  function wordRegexp(pWords) {\n    return new RegExp(\"(\" + pWords.join(\"|\") + \")\", \"i\");\n  }\n\n  function startStateFn() {\n    return {\n      inComment : false,\n      inString : false,\n      inAttributeList : false,\n      inScript : false\n    };\n  }\n\n  function copyStateFn(pState) {\n    return {\n      inComment : pState.inComment,\n      inString : pState.inString,\n      inAttributeList : pState.inAttributeList,\n      inScript : pState.inScript\n    };\n  }\n\n  function produceTokenFunction(pConfig) {\n\n    return function(pStream, pState) {\n      if (pStream.match(wordRegexp(pConfig.brackets), true, true)) {\n        return \"bracket\";\n      }\n      /* comments */\n      if (!pState.inComment) {\n        if (pStream.match(/\\/\\*[^\\*\\/]*/, true, true)) {\n          pState.inComment = true;\n          return \"comment\";\n        }\n        if (pStream.match(wordRegexp(pConfig.singlecomment), true, true)) {\n          pStream.skipToEnd();\n          return \"comment\";\n        }\n      }\n      if (pState.inComment) {\n        if (pStream.match(/[^\\*\\/]*\\*\\//, true, true))\n          pState.inComment = false;\n        else\n          pStream.skipToEnd();\n        return \"comment\";\n      }\n      /* strings */\n      if (!pState.inString && pStream.match(/\\\"(\\\\\\\"|[^\\\"])*/, true, true)) {\n        pState.inString = true;\n        return \"string\";\n      }\n      if (pState.inString) {\n        if (pStream.match(/[^\\\"]*\\\"/, true, true))\n          pState.inString = false;\n        else\n          pStream.skipToEnd();\n        return \"string\";\n      }\n      /* keywords & operators */\n      if (!!pConfig.keywords && pStream.match(wordRegexpBoundary(pConfig.keywords), true, true))\n        return \"keyword\";\n\n      if (pStream.match(wordRegexpBoundary(pConfig.options), true, true))\n        return \"keyword\";\n\n      if (pStream.match(wordRegexpBoundary(pConfig.arcsWords), true, true))\n        return \"keyword\";\n\n      if (pStream.match(wordRegexp(pConfig.arcsOthers), true, true))\n        return \"keyword\";\n\n      if (!!pConfig.operators && pStream.match(wordRegexp(pConfig.operators), true, true))\n        return \"operator\";\n\n      if (!!pConfig.constants && pStream.match(wordRegexp(pConfig.constants), true, true))\n        return \"variable\";\n\n      /* attribute lists */\n      if (!pConfig.inAttributeList && !!pConfig.attributes && pStream.match(/\\[/, true, true)) {\n        pConfig.inAttributeList = true;\n        return \"bracket\";\n      }\n      if (pConfig.inAttributeList) {\n        if (pConfig.attributes !== null && pStream.match(wordRegexpBoundary(pConfig.attributes), true, true)) {\n          return \"attribute\";\n        }\n        if (pStream.match(/]/, true, true)) {\n          pConfig.inAttributeList = false;\n          return \"bracket\";\n        }\n      }\n\n      pStream.next();\n      return \"base\";\n    };\n  }\n\n});\n"]}