1{"version":3,"sources":["../../node_modules/codemirror/mode/ttcn-cfg/ttcn-cfg.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","config","parserConfig","indentUnit","keywords","fileNCtrlMaskOptions","externalCommands","multiLineStrings","indentStatements","isOperatorChar","curPunc","tokenBase","stream","state","ch","next","tokenize","tokenString","test","skipToEnd","eatWhile","cur","current","propertyIsEnumerable","quote","escaped","end","afterNext","peek","toLowerCase","Context","indented","column","type","align","prev","this","pushContext","col","indent","context","popContext","t","startState","basecolumn","startOfLine","token","ctx","sol","indentation","eatSpace","style","electricChars","lineComment","fold","words","str","obj","split","i","length","defineMIME","name"],"mappings":"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","file":"ttcn-cfg.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\"));\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  CodeMirror.defineMode(\"ttcn-cfg\", function(config, parserConfig) {\n    var indentUnit = config.indentUnit,\n        keywords = parserConfig.keywords || {},\n        fileNCtrlMaskOptions = parserConfig.fileNCtrlMaskOptions || {},\n        externalCommands = parserConfig.externalCommands || {},\n        multiLineStrings = parserConfig.multiLineStrings,\n        indentStatements = parserConfig.indentStatements !== false;\n    var isOperatorChar = /[\\|]/;\n    var curPunc;\n\n    function tokenBase(stream, state) {\n      var ch = stream.next();\n      if (ch == '\"' || ch == \"'\") {\n        state.tokenize = tokenString(ch);\n        return state.tokenize(stream, state);\n      }\n      if (/[:=]/.test(ch)) {\n        curPunc = ch;\n        return \"punctuation\";\n      }\n      if (ch == \"#\"){\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      if (/\\d/.test(ch)) {\n        stream.eatWhile(/[\\w\\.]/);\n        return \"number\";\n      }\n      if (isOperatorChar.test(ch)) {\n        stream.eatWhile(isOperatorChar);\n        return \"operator\";\n      }\n      if (ch == \"[\"){\n        stream.eatWhile(/[\\w_\\]]/);\n        return \"number sectionTitle\";\n      }\n\n      stream.eatWhile(/[\\w\\$_]/);\n      var cur = stream.current();\n      if (keywords.propertyIsEnumerable(cur)) return \"keyword\";\n      if (fileNCtrlMaskOptions.propertyIsEnumerable(cur))\n        return \"negative fileNCtrlMaskOptions\";\n      if (externalCommands.propertyIsEnumerable(cur)) return \"negative externalCommands\";\n\n      return \"variable\";\n    }\n\n    function tokenString(quote) {\n      return function(stream, state) {\n        var escaped = false, next, end = false;\n        while ((next = stream.next()) != null) {\n          if (next == quote && !escaped){\n            var afterNext = stream.peek();\n            //look if the character if the quote is like the B in '10100010'B\n            if (afterNext){\n              afterNext = afterNext.toLowerCase();\n              if(afterNext == \"b\" || afterNext == \"h\" || afterNext == \"o\")\n                stream.next();\n            }\n            end = true; break;\n          }\n          escaped = !escaped && next == \"\\\\\";\n        }\n        if (end || !(escaped || multiLineStrings))\n          state.tokenize = null;\n        return \"string\";\n      };\n    }\n\n    function Context(indented, column, type, align, prev) {\n      this.indented = indented;\n      this.column = column;\n      this.type = type;\n      this.align = align;\n      this.prev = prev;\n    }\n    function pushContext(state, col, type) {\n      var indent = state.indented;\n      if (state.context && state.context.type == \"statement\")\n        indent = state.context.indented;\n      return state.context = new Context(indent, col, type, null, state.context);\n    }\n    function popContext(state) {\n      var t = state.context.type;\n      if (t == \")\" || t == \"]\" || t == \"}\")\n        state.indented = state.context.indented;\n      return state.context = state.context.prev;\n    }\n\n    //Interface\n    return {\n      startState: function(basecolumn) {\n        return {\n          tokenize: null,\n          context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n          indented: 0,\n          startOfLine: true\n        };\n      },\n\n      token: function(stream, state) {\n        var ctx = state.context;\n        if (stream.sol()) {\n          if (ctx.align == null) ctx.align = false;\n          state.indented = stream.indentation();\n          state.startOfLine = true;\n        }\n        if (stream.eatSpace()) return null;\n        curPunc = null;\n        var style = (state.tokenize || tokenBase)(stream, state);\n        if (style == \"comment\") return style;\n        if (ctx.align == null) ctx.align = true;\n\n        if ((curPunc == \";\" || curPunc == \":\" || curPunc == \",\")\n            && ctx.type == \"statement\"){\n          popContext(state);\n        }\n        else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n        else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n        else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n        else if (curPunc == \"}\") {\n          while (ctx.type == \"statement\") ctx = popContext(state);\n          if (ctx.type == \"}\") ctx = popContext(state);\n          while (ctx.type == \"statement\") ctx = popContext(state);\n        }\n        else if (curPunc == ctx.type) popContext(state);\n        else if (indentStatements && (((ctx.type == \"}\" || ctx.type == \"top\")\n            && curPunc != ';') || (ctx.type == \"statement\"\n            && curPunc == \"newstatement\")))\n          pushContext(state, stream.column(), \"statement\");\n        state.startOfLine = false;\n        return style;\n      },\n\n      electricChars: \"{}\",\n      lineComment: \"#\",\n      fold: \"brace\"\n    };\n  });\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i)\n      obj[words[i]] = true;\n    return obj;\n  }\n\n  CodeMirror.defineMIME(\"text/x-ttcn-cfg\", {\n    name: \"ttcn-cfg\",\n    keywords: words(\"Yes No LogFile FileMask ConsoleMask AppendFile\" +\n    \" TimeStampFormat LogEventTypes SourceInfoFormat\" +\n    \" LogEntityName LogSourceInfo DiskFullAction\" +\n    \" LogFileNumber LogFileSize MatchingHints Detailed\" +\n    \" Compact SubCategories Stack Single None Seconds\" +\n    \" DateTime Time Stop Error Retry Delete TCPPort KillTimer\" +\n    \" NumHCs UnixSocketsEnabled LocalAddress\"),\n    fileNCtrlMaskOptions: words(\"TTCN_EXECUTOR TTCN_ERROR TTCN_WARNING\" +\n    \" TTCN_PORTEVENT TTCN_TIMEROP TTCN_VERDICTOP\" +\n    \" TTCN_DEFAULTOP TTCN_TESTCASE TTCN_ACTION\" +\n    \" TTCN_USER TTCN_FUNCTION TTCN_STATISTICS\" +\n    \" TTCN_PARALLEL TTCN_MATCHING TTCN_DEBUG\" +\n    \" EXECUTOR ERROR WARNING PORTEVENT TIMEROP\" +\n    \" VERDICTOP DEFAULTOP TESTCASE ACTION USER\" +\n    \" FUNCTION STATISTICS PARALLEL MATCHING DEBUG\" +\n    \" LOG_ALL LOG_NOTHING ACTION_UNQUALIFIED\" +\n    \" DEBUG_ENCDEC DEBUG_TESTPORT\" +\n    \" DEBUG_UNQUALIFIED DEFAULTOP_ACTIVATE\" +\n    \" DEFAULTOP_DEACTIVATE DEFAULTOP_EXIT\" +\n    \" DEFAULTOP_UNQUALIFIED ERROR_UNQUALIFIED\" +\n    \" EXECUTOR_COMPONENT EXECUTOR_CONFIGDATA\" +\n    \" EXECUTOR_EXTCOMMAND EXECUTOR_LOGOPTIONS\" +\n    \" EXECUTOR_RUNTIME EXECUTOR_UNQUALIFIED\" +\n    \" FUNCTION_RND FUNCTION_UNQUALIFIED\" +\n    \" MATCHING_DONE MATCHING_MCSUCCESS\" +\n    \" MATCHING_MCUNSUCC MATCHING_MMSUCCESS\" +\n    \" MATCHING_MMUNSUCC MATCHING_PCSUCCESS\" +\n    \" MATCHING_PCUNSUCC MATCHING_PMSUCCESS\" +\n    \" MATCHING_PMUNSUCC MATCHING_PROBLEM\" +\n    \" MATCHING_TIMEOUT MATCHING_UNQUALIFIED\" +\n    \" PARALLEL_PORTCONN PARALLEL_PORTMAP\" +\n    \" PARALLEL_PTC PARALLEL_UNQUALIFIED\" +\n    \" PORTEVENT_DUALRECV PORTEVENT_DUALSEND\" +\n    \" PORTEVENT_MCRECV PORTEVENT_MCSEND\" +\n    \" PORTEVENT_MMRECV PORTEVENT_MMSEND\" +\n    \" PORTEVENT_MQUEUE PORTEVENT_PCIN\" +\n    \" PORTEVENT_PCOUT PORTEVENT_PMIN\" +\n    \" PORTEVENT_PMOUT PORTEVENT_PQUEUE\" +\n    \" PORTEVENT_STATE PORTEVENT_UNQUALIFIED\" +\n    \" STATISTICS_UNQUALIFIED STATISTICS_VERDICT\" +\n    \" TESTCASE_FINISH TESTCASE_START\" +\n    \" TESTCASE_UNQUALIFIED TIMEROP_GUARD\" +\n    \" TIMEROP_READ TIMEROP_START TIMEROP_STOP\" +\n    \" TIMEROP_TIMEOUT TIMEROP_UNQUALIFIED\" +\n    \" USER_UNQUALIFIED VERDICTOP_FINAL\" +\n    \" VERDICTOP_GETVERDICT VERDICTOP_SETVERDICT\" +\n    \" VERDICTOP_UNQUALIFIED WARNING_UNQUALIFIED\"),\n    externalCommands: words(\"BeginControlPart EndControlPart BeginTestCase\" +\n    \" EndTestCase\"),\n    multiLineStrings: true\n  });\n});"]}