1{"version":3,"sources":["../../node_modules/codemirror/mode/asn.1/asn.1.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","config","parserConfig","indentUnit","keywords","cmipVerbs","compareTypes","status","tags","storage","modifier","accessTypes","multiLineStrings","indentStatements","isOperatorChar","curPunc","tokenBase","stream","state","ch","next","tokenize","tokenString","test","eat","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":"CAGA,SAAUA,GACR,SAAWC,UAAW,gBAAmBC,SAAU,SACjDF,EAAIG,QAAQ,6BACT,UAAWC,SAAU,YAAcA,OAAOC,IAC7CD,QAAQ,wBAAyBJ,OAEjCA,GAAIM,cACL,SAASA,GACV,YAEAA,GAAWC,WAAW,QAAS,SAASC,EAAQC,GAC9C,GAAIC,GAAaF,EAAOE,WACpBC,EAAWF,EAAaE,aACxBC,EAAYH,EAAaG,cACzBC,EAAeJ,EAAaI,iBAC5BC,EAASL,EAAaK,WACtBC,EAAON,EAAaM,SACpBC,EAAUP,EAAaO,YACvBC,EAAWR,EAAaQ,aACxBC,EAAcT,EAAaS,gBAC3BC,EAAmBV,EAAaU,iBAChCC,EAAmBX,EAAaW,mBAAqB,KACzD,IAAIC,GAAiB,QACrB,IAAIC,EAEJ,SAASC,GAAUC,EAAQC,GACzB,GAAIC,GAAKF,EAAOG,MAChB,IAAID,GAAM,KAAOA,GAAM,IAAK,CAC1BD,EAAMG,SAAWC,EAAYH,EAC7B,OAAOD,GAAMG,SAASJ,EAAQC,GAEhC,GAAI,mBAAmBK,KAAKJ,GAAK,CAC/BJ,EAAUI,CACV,OAAO,cAET,GAAIA,GAAM,IAAI,CACZ,GAAIF,EAAOO,IAAI,KAAM,CACnBP,EAAOQ,WACP,OAAO,WAGX,GAAI,KAAKF,KAAKJ,GAAK,CACjBF,EAAOS,SAAS,SAChB,OAAO,SAET,GAAIZ,EAAeS,KAAKJ,GAAK,CAC3BF,EAAOS,SAASZ,EAChB,OAAO,WAGTG,EAAOS,SAAS,SAChB,IAAIC,GAAMV,EAAOW,SACjB,IAAIxB,EAASyB,qBAAqBF,GAAM,MAAO,SAC/C,IAAItB,EAAUwB,qBAAqBF,GAAM,MAAO,oBAChD,IAAIrB,EAAauB,qBAAqBF,GAAM,MAAO,mBACnD,IAAIpB,EAAOsB,qBAAqBF,GAAM,MAAO,gBAC7C,IAAInB,EAAKqB,qBAAqBF,GAAM,MAAO,iBAC3C,IAAIlB,EAAQoB,qBAAqBF,GAAM,MAAO,iBAC9C,IAAIjB,EAASmB,qBAAqBF,GAAM,MAAO,mBAC/C,IAAIhB,EAAYkB,qBAAqBF,GAAM,MAAO,kBAElD,OAAO,WAGT,QAASL,GAAYQ,GACnB,MAAO,UAASb,EAAQC,GACtB,GAAIa,GAAU,MAAOX,EAAMY,EAAM,KACjC,QAAQZ,EAAOH,EAAOG,SAAW,KAAM,CACrC,GAAIA,GAAQU,IAAUC,EAAQ,CAC5B,GAAIE,GAAYhB,EAAOiB,MAEvB,IAAID,EAAU,CACZA,EAAYA,EAAUE,aACtB,IAAGF,GAAa,KAAOA,GAAa,KAAOA,GAAa,IACtDhB,EAAOG,OAEXY,EAAM,IAAM,OAEdD,GAAWA,GAAWX,GAAQ,KAEhC,GAAIY,KAASD,GAAWnB,GACtBM,EAAMG,SAAW,IACnB,OAAO,UAIX,QAASe,GAAQC,EAAUC,EAAQC,EAAMC,EAAOC,GAC9CC,KAAKL,SAAWA,CAChBK,MAAKJ,OAASA,CACdI,MAAKH,KAAOA,CACZG,MAAKF,MAAQA,CACbE,MAAKD,KAAOA,EAEd,QAASE,GAAYzB,EAAO0B,EAAKL,GAC/B,GAAIM,GAAS3B,EAAMmB,QACnB,IAAInB,EAAM4B,SAAW5B,EAAM4B,QAAQP,MAAQ,YACzCM,EAAS3B,EAAM4B,QAAQT,QACzB,OAAOnB,GAAM4B,QAAU,GAAIV,GAAQS,EAAQD,EAAKL,EAAM,KAAMrB,EAAM4B,SAEpE,QAASC,GAAW7B,GAClB,GAAI8B,GAAI9B,EAAM4B,QAAQP,IACtB,IAAIS,GAAK,KAAOA,GAAK,KAAOA,GAAK,IAC/B9B,EAAMmB,SAAWnB,EAAM4B,QAAQT,QACjC,OAAOnB,GAAM4B,QAAU5B,EAAM4B,QAAQL,KAIvC,OACEQ,WAAY,SAASC,GACnB,OACE7B,SAAU,KACVyB,QAAS,GAAIV,IAASc,GAAc,GAAK/C,EAAY,EAAG,MAAO,OAC/DkC,SAAU,EACVc,YAAa,OAIjBC,MAAO,SAASnC,EAAQC,GACtB,GAAImC,GAAMnC,EAAM4B,OAChB,IAAI7B,EAAOqC,MAAO,CAChB,GAAID,EAAIb,OAAS,KAAMa,EAAIb,MAAQ,KACnCtB,GAAMmB,SAAWpB,EAAOsC,aACxBrC,GAAMiC,YAAc,KAEtB,GAAIlC,EAAOuC,WAAY,MAAO,KAC9BzC,GAAU,IACV,IAAI0C,IAASvC,EAAMG,UAAYL,GAAWC,EAAQC,EAClD,IAAIuC,GAAS,UAAW,MAAOA,EAC/B,IAAIJ,EAAIb,OAAS,KAAMa,EAAIb,MAAQ,IAEnC,KAAKzB,GAAW,KAAOA,GAAW,KAAOA,GAAW,MAC7CsC,EAAId,MAAQ,YAAY,CAC7BQ,EAAW7B,OAER,IAAIH,GAAW,IAAK4B,EAAYzB,EAAOD,EAAOqB,SAAU,SACxD,IAAIvB,GAAW,IAAK4B,EAAYzB,EAAOD,EAAOqB,SAAU,SACxD,IAAIvB,GAAW,IAAK4B,EAAYzB,EAAOD,EAAOqB,SAAU,SACxD,IAAIvB,GAAW,IAAK,CACvB,MAAOsC,EAAId,MAAQ,YAAac,EAAMN,EAAW7B,EACjD,IAAImC,EAAId,MAAQ,IAAKc,EAAMN,EAAW7B,EACtC,OAAOmC,EAAId,MAAQ,YAAac,EAAMN,EAAW7B,OAE9C,IAAIH,GAAWsC,EAAId,KAAMQ,EAAW7B,OACpC,IAAIL,KAAuBwC,EAAId,MAAQ,KAAOc,EAAId,MAAQ,QACxDxB,GAAW,KAASsC,EAAId,MAAQ,aAChCxB,GAAW,gBAChB4B,EAAYzB,EAAOD,EAAOqB,SAAU,YAEtCpB,GAAMiC,YAAc,KACpB,OAAOM,IAGTC,cAAe,KACfC,YAAa,KACbC,KAAM,UAIV,SAASC,GAAMC,GACb,GAAIC,MAAUF,EAAQC,EAAIE,MAAM,IAChC,KAAK,GAAIC,GAAI,EAAGA,EAAIJ,EAAMK,SAAUD,EAAGF,EAAIF,EAAMI,IAAM,IACvD,OAAOF,GAGThE,EAAWoE,WAAW,mBACpBC,KAAM,QACNhE,SAAUyD,EAAM,oDAChB,sDACA,mDACA,mDACA,mDACA,uDACA,2DACA,oBACAxD,UAAWwD,EAAM,gDACjBvD,aAAcuD,EAAM,uDACpB,iDACA,gDACA,8CACA,uBACAtD,OAAQsD,EAAM,yCACdrD,KAAMqD,EAAM,uDACZ,cACApD,QAASoD,EAAM,qDACf,oDACA,+CACA,qDACA,oDACA,yCACA,iDACA,uDACA,qDACA,wDACAnD,SAAUmD,EAAM,wDAChB,sDACA,YACAlD,YAAakD,EAAM,iDACnB,2BACAjD,iBAAkB","file":"asn.1.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(\"asn.1\", function(config, parserConfig) {\n    var indentUnit = config.indentUnit,\n        keywords = parserConfig.keywords || {},\n        cmipVerbs = parserConfig.cmipVerbs || {},\n        compareTypes = parserConfig.compareTypes || {},\n        status = parserConfig.status || {},\n        tags = parserConfig.tags || {},\n        storage = parserConfig.storage || {},\n        modifier = parserConfig.modifier || {},\n        accessTypes = parserConfig.accessTypes|| {},\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        if (stream.eat(\"-\")) {\n          stream.skipToEnd();\n          return \"comment\";\n        }\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\n      stream.eatWhile(/[\\w\\-]/);\n      var cur = stream.current();\n      if (keywords.propertyIsEnumerable(cur)) return \"keyword\";\n      if (cmipVerbs.propertyIsEnumerable(cur)) return \"variable cmipVerbs\";\n      if (compareTypes.propertyIsEnumerable(cur)) return \"atom compareTypes\";\n      if (status.propertyIsEnumerable(cur)) return \"comment status\";\n      if (tags.propertyIsEnumerable(cur)) return \"variable-3 tags\";\n      if (storage.propertyIsEnumerable(cur)) return \"builtin storage\";\n      if (modifier.propertyIsEnumerable(cur)) return \"string-2 modifier\";\n      if (accessTypes.propertyIsEnumerable(cur)) return \"atom accessTypes\";\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\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) obj[words[i]] = true;\n    return obj;\n  }\n\n  CodeMirror.defineMIME(\"text/x-ttcn-asn\", {\n    name: \"asn.1\",\n    keywords: words(\"DEFINITIONS OBJECTS IF DERIVED INFORMATION ACTION\" +\n    \" REPLY ANY NAMED CHARACTERIZED BEHAVIOUR REGISTERED\" +\n    \" WITH AS IDENTIFIED CONSTRAINED BY PRESENT BEGIN\" +\n    \" IMPORTS FROM UNITS SYNTAX MIN-ACCESS MAX-ACCESS\" +\n    \" MINACCESS MAXACCESS REVISION STATUS DESCRIPTION\" +\n    \" SEQUENCE SET COMPONENTS OF CHOICE DistinguishedName\" +\n    \" ENUMERATED SIZE MODULE END INDEX AUGMENTS EXTENSIBILITY\" +\n    \" IMPLIED EXPORTS\"),\n    cmipVerbs: words(\"ACTIONS ADD GET NOTIFICATIONS REPLACE REMOVE\"),\n    compareTypes: words(\"OPTIONAL DEFAULT MANAGED MODULE-TYPE MODULE_IDENTITY\" +\n    \" MODULE-COMPLIANCE OBJECT-TYPE OBJECT-IDENTITY\" +\n    \" OBJECT-COMPLIANCE MODE CONFIRMED CONDITIONAL\" +\n    \" SUBORDINATE SUPERIOR CLASS TRUE FALSE NULL\" +\n    \" TEXTUAL-CONVENTION\"),\n    status: words(\"current deprecated mandatory obsolete\"),\n    tags: words(\"APPLICATION AUTOMATIC EXPLICIT IMPLICIT PRIVATE TAGS\" +\n    \" UNIVERSAL\"),\n    storage: words(\"BOOLEAN INTEGER OBJECT IDENTIFIER BIT OCTET STRING\" +\n    \" UTCTime InterfaceIndex IANAifType CMIP-Attribute\" +\n    \" REAL PACKAGE PACKAGES IpAddress PhysAddress\" +\n    \" NetworkAddress BITS BMPString TimeStamp TimeTicks\" +\n    \" TruthValue RowStatus DisplayString GeneralString\" +\n    \" GraphicString IA5String NumericString\" +\n    \" PrintableString SnmpAdminAtring TeletexString\" +\n    \" UTF8String VideotexString VisibleString StringStore\" +\n    \" ISO646String T61String UniversalString Unsigned32\" +\n    \" Integer32 Gauge Gauge32 Counter Counter32 Counter64\"),\n    modifier: words(\"ATTRIBUTE ATTRIBUTES MANDATORY-GROUP MANDATORY-GROUPS\" +\n    \" GROUP GROUPS ELEMENTS EQUALITY ORDERING SUBSTRINGS\" +\n    \" DEFINED\"),\n    accessTypes: words(\"not-accessible accessible-for-notify read-only\" +\n    \" read-create read-write\"),\n    multiLineStrings: true\n  });\n});\n"]}