{"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});"]}