{"version":3,"file":"asn1-Dn9-fgGr.cjs","sources":["../../../node_modules/@codemirror/legacy-modes/mode/asn1.js"],"sourcesContent":["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\nconst defaults = {\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 SnmpAdminString 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\nexport function asn1(parserConfig) {\n  var keywords = parserConfig.keywords || defaults.keywords,\n      cmipVerbs = parserConfig.cmipVerbs || defaults.cmipVerbs,\n      compareTypes = parserConfig.compareTypes || defaults.compareTypes,\n      status = parserConfig.status || defaults.status,\n      tags = parserConfig.tags || defaults.tags,\n      storage = parserConfig.storage || defaults.storage,\n      modifier = parserConfig.modifier || defaults.modifier,\n      accessTypes = parserConfig.accessTypes|| defaults.accessTypes,\n      multiLineStrings = parserConfig.multiLineStrings || defaults.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 \"variableName\";\n    if (compareTypes.propertyIsEnumerable(cur)) return \"atom\";\n    if (status.propertyIsEnumerable(cur)) return \"comment\";\n    if (tags.propertyIsEnumerable(cur)) return \"typeName\";\n    if (storage.propertyIsEnumerable(cur)) return \"modifier\";\n    if (modifier.propertyIsEnumerable(cur)) return \"modifier\";\n    if (accessTypes.propertyIsEnumerable(cur)) return \"modifier\";\n\n    return \"variableName\";\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    name: \"asn1\",\n    startState: function() {\n      return {\n        tokenize: null,\n        context: new Context(-2, 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    languageData: {\n      indentOnInput: /^\\s*[{}]$/,\n      commentTokens: {line: \"--\"}\n    }\n  };\n};\n"],"names":["words","str","obj","split","i","length","defaults","keywords","cmipVerbs","compareTypes","status","tags","storage","modifier","accessTypes","multiLineStrings","parserConfig","curPunc","indentStatements","isOperatorChar","tokenBase","stream","state","quote","ch","next","tokenize","escaped","end","afterNext","peek","toLowerCase","test","eat","skipToEnd","eatWhile","cur","current","propertyIsEnumerable","Context","indented","column","type","align","prev","this","pushContext","col","indent","context","popContext","t","name","startState","startOfLine","token","ctx","sol","indentation","eatSpace","style","languageData","indentOnInput","commentTokens","line"],"mappings":"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","x_google_ignoreList":[0]}