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