1{"version":3,"sources":["../../node_modules/codemirror/mode/dylan/dylan.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","forEach","arr","f","i","length","some","defineMode","_config","words","unnamedDefinition","namedDefinition","typeParameterizedDefinition","otherParameterizedDefinition","constantSimpleDefinition","variableSimpleDefinition","otherSimpleDefinition","statement","separator","other","signalingCalls","concat","symbolPattern","symbol","RegExp","patterns","symbolKeyword","symbolClass","symbolGlobal","symbolConstant","patternStyles","patternName","hasOwnProperty","styles","wordLookup","styleLookup","type","word","chain","stream","state","tokenize","tokenBase","ch","peek","next","tokenString","eat","tokenComment","skipToEnd","backUp","test","match","eatWhile","indexOf","name","pattern","Array","p","current","maybeEnd","maybeNested","nestedCount","quote","style","escaped","end","startState","currentIndent","token","eatSpace","blockCommentStart","blockCommentEnd","defineMIME"],"mappings":"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","file":"dylan.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\nfunction forEach(arr, f) {\n  for (var i = 0; i < arr.length; i++) f(arr[i], i)\n}\nfunction some(arr, f) {\n  for (var i = 0; i < arr.length; i++) if (f(arr[i], i)) return true\n  return false\n}\n\nCodeMirror.defineMode(\"dylan\", function(_config) {\n  // Words\n  var words = {\n    // Words that introduce unnamed definitions like \"define interface\"\n    unnamedDefinition: [\"interface\"],\n\n    // Words that introduce simple named definitions like \"define library\"\n    namedDefinition: [\"module\", \"library\", \"macro\",\n                      \"C-struct\", \"C-union\",\n                      \"C-function\", \"C-callable-wrapper\"\n                     ],\n\n    // Words that introduce type definitions like \"define class\".\n    // These are also parameterized like \"define method\" and are\n    // appended to otherParameterizedDefinitionWords\n    typeParameterizedDefinition: [\"class\", \"C-subtype\", \"C-mapped-subtype\"],\n\n    // Words that introduce trickier definitions like \"define method\".\n    // These require special definitions to be added to startExpressions\n    otherParameterizedDefinition: [\"method\", \"function\",\n                                   \"C-variable\", \"C-address\"\n                                  ],\n\n    // Words that introduce module constant definitions.\n    // These must also be simple definitions and are\n    // appended to otherSimpleDefinitionWords\n    constantSimpleDefinition: [\"constant\"],\n\n    // Words that introduce module variable definitions.\n    // These must also be simple definitions and are\n    // appended to otherSimpleDefinitionWords\n    variableSimpleDefinition: [\"variable\"],\n\n    // Other words that introduce simple definitions\n    // (without implicit bodies).\n    otherSimpleDefinition: [\"generic\", \"domain\",\n                            \"C-pointer-type\",\n                            \"table\"\n                           ],\n\n    // Words that begin statements with implicit bodies.\n    statement: [\"if\", \"block\", \"begin\", \"method\", \"case\",\n                \"for\", \"select\", \"when\", \"unless\", \"until\",\n                \"while\", \"iterate\", \"profiling\", \"dynamic-bind\"\n               ],\n\n    // Patterns that act as separators in compound statements.\n    // This may include any general pattern that must be indented\n    // specially.\n    separator: [\"finally\", \"exception\", \"cleanup\", \"else\",\n                \"elseif\", \"afterwards\"\n               ],\n\n    // Keywords that do not require special indentation handling,\n    // but which should be highlighted\n    other: [\"above\", \"below\", \"by\", \"from\", \"handler\", \"in\",\n            \"instance\", \"let\", \"local\", \"otherwise\", \"slot\",\n            \"subclass\", \"then\", \"to\", \"keyed-by\", \"virtual\"\n           ],\n\n    // Condition signaling function calls\n    signalingCalls: [\"signal\", \"error\", \"cerror\",\n                     \"break\", \"check-type\", \"abort\"\n                    ]\n  };\n\n  words[\"otherDefinition\"] =\n    words[\"unnamedDefinition\"]\n    .concat(words[\"namedDefinition\"])\n    .concat(words[\"otherParameterizedDefinition\"]);\n\n  words[\"definition\"] =\n    words[\"typeParameterizedDefinition\"]\n    .concat(words[\"otherDefinition\"]);\n\n  words[\"parameterizedDefinition\"] =\n    words[\"typeParameterizedDefinition\"]\n    .concat(words[\"otherParameterizedDefinition\"]);\n\n  words[\"simpleDefinition\"] =\n    words[\"constantSimpleDefinition\"]\n    .concat(words[\"variableSimpleDefinition\"])\n    .concat(words[\"otherSimpleDefinition\"]);\n\n  words[\"keyword\"] =\n    words[\"statement\"]\n    .concat(words[\"separator\"])\n    .concat(words[\"other\"]);\n\n  // Patterns\n  var symbolPattern = \"[-_a-zA-Z?!*@<>$%]+\";\n  var symbol = new RegExp(\"^\" + symbolPattern);\n  var patterns = {\n    // Symbols with special syntax\n    symbolKeyword: symbolPattern + \":\",\n    symbolClass: \"<\" + symbolPattern + \">\",\n    symbolGlobal: \"\\\\*\" + symbolPattern + \"\\\\*\",\n    symbolConstant: \"\\\\$\" + symbolPattern\n  };\n  var patternStyles = {\n    symbolKeyword: \"atom\",\n    symbolClass: \"tag\",\n    symbolGlobal: \"variable-2\",\n    symbolConstant: \"variable-3\"\n  };\n\n  // Compile all patterns to regular expressions\n  for (var patternName in patterns)\n    if (patterns.hasOwnProperty(patternName))\n      patterns[patternName] = new RegExp(\"^\" + patterns[patternName]);\n\n  // Names beginning \"with-\" and \"without-\" are commonly\n  // used as statement macro\n  patterns[\"keyword\"] = [/^with(?:out)?-[-_a-zA-Z?!*@<>$%]+/];\n\n  var styles = {};\n  styles[\"keyword\"] = \"keyword\";\n  styles[\"definition\"] = \"def\";\n  styles[\"simpleDefinition\"] = \"def\";\n  styles[\"signalingCalls\"] = \"builtin\";\n\n  // protected words lookup table\n  var wordLookup = {};\n  var styleLookup = {};\n\n  forEach([\n    \"keyword\",\n    \"definition\",\n    \"simpleDefinition\",\n    \"signalingCalls\"\n  ], function(type) {\n    forEach(words[type], function(word) {\n      wordLookup[word] = type;\n      styleLookup[word] = styles[type];\n    });\n  });\n\n\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n\n  function tokenBase(stream, state) {\n    // String\n    var ch = stream.peek();\n    if (ch == \"'\" || ch == '\"') {\n      stream.next();\n      return chain(stream, state, tokenString(ch, \"string\"));\n    }\n    // Comment\n    else if (ch == \"/\") {\n      stream.next();\n      if (stream.eat(\"*\")) {\n        return chain(stream, state, tokenComment);\n      } else if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      stream.backUp(1);\n    }\n    // Decimal\n    else if (/[+\\-\\d\\.]/.test(ch)) {\n      if (stream.match(/^[+-]?[0-9]*\\.[0-9]*([esdx][+-]?[0-9]+)?/i) ||\n          stream.match(/^[+-]?[0-9]+([esdx][+-]?[0-9]+)/i) ||\n          stream.match(/^[+-]?\\d+/)) {\n        return \"number\";\n      }\n    }\n    // Hash\n    else if (ch == \"#\") {\n      stream.next();\n      // Symbol with string syntax\n      ch = stream.peek();\n      if (ch == '\"') {\n        stream.next();\n        return chain(stream, state, tokenString('\"', \"string\"));\n      }\n      // Binary number\n      else if (ch == \"b\") {\n        stream.next();\n        stream.eatWhile(/[01]/);\n        return \"number\";\n      }\n      // Hex number\n      else if (ch == \"x\") {\n        stream.next();\n        stream.eatWhile(/[\\da-f]/i);\n        return \"number\";\n      }\n      // Octal number\n      else if (ch == \"o\") {\n        stream.next();\n        stream.eatWhile(/[0-7]/);\n        return \"number\";\n      }\n      // Token concatenation in macros\n      else if (ch == '#') {\n        stream.next();\n        return \"punctuation\";\n      }\n      // Sequence literals\n      else if ((ch == '[') || (ch == '(')) {\n        stream.next();\n        return \"bracket\";\n      // Hash symbol\n      } else if (stream.match(/f|t|all-keys|include|key|next|rest/i)) {\n        return \"atom\";\n      } else {\n        stream.eatWhile(/[-a-zA-Z]/);\n        return \"error\";\n      }\n    } else if (ch == \"~\") {\n      stream.next();\n      ch = stream.peek();\n      if (ch == \"=\") {\n        stream.next();\n        ch = stream.peek();\n        if (ch == \"=\") {\n          stream.next();\n          return \"operator\";\n        }\n        return \"operator\";\n      }\n      return \"operator\";\n    } else if (ch == \":\") {\n      stream.next();\n      ch = stream.peek();\n      if (ch == \"=\") {\n        stream.next();\n        return \"operator\";\n      } else if (ch == \":\") {\n        stream.next();\n        return \"punctuation\";\n      }\n    } else if (\"[](){}\".indexOf(ch) != -1) {\n      stream.next();\n      return \"bracket\";\n    } else if (\".,\".indexOf(ch) != -1) {\n      stream.next();\n      return \"punctuation\";\n    } else if (stream.match(\"end\")) {\n      return \"keyword\";\n    }\n    for (var name in patterns) {\n      if (patterns.hasOwnProperty(name)) {\n        var pattern = patterns[name];\n        if ((pattern instanceof Array && some(pattern, function(p) {\n          return stream.match(p);\n        })) || stream.match(pattern))\n          return patternStyles[name];\n      }\n    }\n    if (/[+\\-*\\/^=<>&|]/.test(ch)) {\n      stream.next();\n      return \"operator\";\n    }\n    if (stream.match(\"define\")) {\n      return \"def\";\n    } else {\n      stream.eatWhile(/[\\w\\-]/);\n      // Keyword\n      if (wordLookup.hasOwnProperty(stream.current())) {\n        return styleLookup[stream.current()];\n      } else if (stream.current().match(symbol)) {\n        return \"variable\";\n      } else {\n        stream.next();\n        return \"variable-2\";\n      }\n    }\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, maybeNested = false, nestedCount = 0, ch;\n    while ((ch = stream.next())) {\n      if (ch == \"/\" && maybeEnd) {\n        if (nestedCount > 0) {\n          nestedCount--;\n        } else {\n          state.tokenize = tokenBase;\n          break;\n        }\n      } else if (ch == \"*\" && maybeNested) {\n        nestedCount++;\n      }\n      maybeEnd = (ch == \"*\");\n      maybeNested = (ch == \"/\");\n    }\n    return \"comment\";\n  }\n\n  function tokenString(quote, style) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {\n          end = true;\n          break;\n        }\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !escaped) {\n        state.tokenize = tokenBase;\n      }\n      return style;\n    };\n  }\n\n  // Interface\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        currentIndent: 0\n      };\n    },\n    token: function(stream, state) {\n      if (stream.eatSpace())\n        return null;\n      var style = state.tokenize(stream, state);\n      return style;\n    },\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-dylan\", \"dylan\");\n\n});\n"]}