{"version":3,"sources":["../../node_modules/codemirror/mode/haxe/haxe.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","config","parserConfig","indentUnit","kw","type","style","A","B","C","operator","atom","attribute","keywords","if","while","else","do","try","return","break","continue","new","throw","var","inline","static","using","public","private","cast","import","macro","function","catch","untyped","callback","for","switch","case","default","in","never","trace","class","abstract","enum","interface","typedef","extends","implements","dynamic","true","false","null","isOperatorChar","chain","stream","state","f","tokenize","toUnescaped","end","escaped","next","content","ret","tp","cont","haxeTokenBase","ch","haxeTokenString","test","eat","eatWhile","match","reAllowed","haxeTokenComment","skipToEnd","current","word","known","propertyIsEnumerable","kwAllowed","quote","maybeEnd","atomicTypes","number","variable","string","regexp","HaxeLexical","indented","column","align","prev","info","this","inScope","varname","v","localVars","name","parseHaxe","cc","cx","marked","lexical","hasOwnProperty","combinator","length","pop","statement","lex","imported","typename","charAt","len","importedtypes","i","registerimport","importname","t","pass","arguments","push","apply","inList","list","register","context","globalVars","defaultVars","pushcontext","vars","popcontext","pushlex","result","poplex","expect","wanted","metadef","vardef1","expression","block","maybeattribute","functiondef","forspec1","maybelabel","funarg","importdef","maybeoperator","maybeexpression","commasep","objprop","value","property","metaargs","what","proceed","typeuse","vardef2","forin","_type","typestring","typeprop","startState","basecolumn","defaulttypes","token","sol","indentation","eatSpace","indent","textAfter","firstChar","closing","electricChars","blockCommentStart","blockCommentEnd","lineComment","defineMIME","inString","peek","skipTo"],"mappings":"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","file":"haxe.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\nCodeMirror.defineMode(\"haxe\", function(config, parserConfig) {\n var indentUnit = config.indentUnit;\n\n // Tokenizer\n\n function kw(type) {return {type: type, style: \"keyword\"};}\n var A = kw(\"keyword a\"), B = kw(\"keyword b\"), C = kw(\"keyword c\");\n var operator = kw(\"operator\"), atom = {type: \"atom\", style: \"atom\"}, attribute = {type:\"attribute\", style: \"attribute\"};\n var type = kw(\"typedef\");\n var keywords = {\n \"if\": A, \"while\": A, \"else\": B, \"do\": B, \"try\": B,\n \"return\": C, \"break\": C, \"continue\": C, \"new\": C, \"throw\": C,\n \"var\": kw(\"var\"), \"inline\":attribute, \"static\": attribute, \"using\":kw(\"import\"),\n \"public\": attribute, \"private\": attribute, \"cast\": kw(\"cast\"), \"import\": kw(\"import\"), \"macro\": kw(\"macro\"),\n \"function\": kw(\"function\"), \"catch\": kw(\"catch\"), \"untyped\": kw(\"untyped\"), \"callback\": kw(\"cb\"),\n \"for\": kw(\"for\"), \"switch\": kw(\"switch\"), \"case\": kw(\"case\"), \"default\": kw(\"default\"),\n \"in\": operator, \"never\": kw(\"property_access\"), \"trace\":kw(\"trace\"),\n \"class\": type, \"abstract\":type, \"enum\":type, \"interface\":type, \"typedef\":type, \"extends\":type, \"implements\":type, \"dynamic\":type,\n \"true\": atom, \"false\": atom, \"null\": atom\n };\n\n var isOperatorChar = /[+\\-*&%=<>!?|]/;\n\n function chain(stream, state, f) {\n state.tokenize = f;\n return f(stream, state);\n }\n\n function toUnescaped(stream, end) {\n var escaped = false, next;\n while ((next = stream.next()) != null) {\n if (next == end && !escaped)\n return true;\n escaped = !escaped && next == \"\\\\\";\n }\n }\n\n // Used as scratch variables to communicate multiple values without\n // consing up tons of objects.\n var type, content;\n function ret(tp, style, cont) {\n type = tp; content = cont;\n return style;\n }\n\n function haxeTokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"' || ch == \"'\") {\n return chain(stream, state, haxeTokenString(ch));\n } else if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n return ret(ch);\n } else if (ch == \"0\" && stream.eat(/x/i)) {\n stream.eatWhile(/[\\da-f]/i);\n return ret(\"number\", \"number\");\n } else if (/\\d/.test(ch) || ch == \"-\" && stream.eat(/\\d/)) {\n stream.match(/^\\d*(?:\\.\\d*(?!\\.))?(?:[eE][+\\-]?\\d+)?/);\n return ret(\"number\", \"number\");\n } else if (state.reAllowed && (ch == \"~\" && stream.eat(/\\//))) {\n toUnescaped(stream, \"/\");\n stream.eatWhile(/[gimsu]/);\n return ret(\"regexp\", \"string-2\");\n } else if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n return chain(stream, state, haxeTokenComment);\n } else if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return ret(\"comment\", \"comment\");\n } else {\n stream.eatWhile(isOperatorChar);\n return ret(\"operator\", null, stream.current());\n }\n } else if (ch == \"#\") {\n stream.skipToEnd();\n return ret(\"conditional\", \"meta\");\n } else if (ch == \"@\") {\n stream.eat(/:/);\n stream.eatWhile(/[\\w_]/);\n return ret (\"metadata\", \"meta\");\n } else if (isOperatorChar.test(ch)) {\n stream.eatWhile(isOperatorChar);\n return ret(\"operator\", null, stream.current());\n } else {\n var word;\n if(/[A-Z]/.test(ch)) {\n stream.eatWhile(/[\\w_<>]/);\n word = stream.current();\n return ret(\"type\", \"variable-3\", word);\n } else {\n stream.eatWhile(/[\\w_]/);\n var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word];\n return (known && state.kwAllowed) ? ret(known.type, known.style, word) :\n ret(\"variable\", \"variable\", word);\n }\n }\n }\n\n function haxeTokenString(quote) {\n return function(stream, state) {\n if (toUnescaped(stream, quote))\n state.tokenize = haxeTokenBase;\n return ret(\"string\", \"string\");\n };\n }\n\n function haxeTokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = haxeTokenBase;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return ret(\"comment\", \"comment\");\n }\n\n // Parser\n\n var atomicTypes = {\"atom\": true, \"number\": true, \"variable\": true, \"string\": true, \"regexp\": true};\n\n function HaxeLexical(indented, column, type, align, prev, info) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.prev = prev;\n this.info = info;\n if (align != null) this.align = align;\n }\n\n function inScope(state, varname) {\n for (var v = state.localVars; v; v = v.next)\n if (v.name == varname) return true;\n }\n\n function parseHaxe(state, style, type, content, stream) {\n var cc = state.cc;\n // Communicate our context to the combinators.\n // (Less wasteful than consing up a hundred closures on every call.)\n cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc;\n\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = true;\n\n while(true) {\n var combinator = cc.length ? cc.pop() : statement;\n if (combinator(type, content)) {\n while(cc.length && cc[cc.length - 1].lex)\n cc.pop()();\n if (cx.marked) return cx.marked;\n if (type == \"variable\" && inScope(state, content)) return \"variable-2\";\n if (type == \"variable\" && imported(state, content)) return \"variable-3\";\n return style;\n }\n }\n }\n\n function imported(state, typename) {\n if (/[a-z]/.test(typename.charAt(0)))\n return false;\n var len = state.importedtypes.length;\n for (var i = 0; i= 0; i--) cx.cc.push(arguments[i]);\n }\n function cont() {\n pass.apply(null, arguments);\n return true;\n }\n function inList(name, list) {\n for (var v = list; v; v = v.next)\n if (v.name == name) return true;\n return false;\n }\n function register(varname) {\n var state = cx.state;\n if (state.context) {\n cx.marked = \"def\";\n if (inList(varname, state.localVars)) return;\n state.localVars = {name: varname, next: state.localVars};\n } else if (state.globalVars) {\n if (inList(varname, state.globalVars)) return;\n state.globalVars = {name: varname, next: state.globalVars};\n }\n }\n\n // Combinators\n\n var defaultVars = {name: \"this\", next: null};\n function pushcontext() {\n if (!cx.state.context) cx.state.localVars = defaultVars;\n cx.state.context = {prev: cx.state.context, vars: cx.state.localVars};\n }\n function popcontext() {\n cx.state.localVars = cx.state.context.vars;\n cx.state.context = cx.state.context.prev;\n }\n popcontext.lex = true;\n function pushlex(type, info) {\n var result = function() {\n var state = cx.state;\n state.lexical = new HaxeLexical(state.indented, cx.stream.column(), type, null, state.lexical, info);\n };\n result.lex = true;\n return result;\n }\n function poplex() {\n var state = cx.state;\n if (state.lexical.prev) {\n if (state.lexical.type == \")\")\n state.indented = state.lexical.indented;\n state.lexical = state.lexical.prev;\n }\n }\n poplex.lex = true;\n\n function expect(wanted) {\n function f(type) {\n if (type == wanted) return cont();\n else if (wanted == \";\") return pass();\n else return cont(f);\n }\n return f;\n }\n\n function statement(type) {\n if (type == \"@\") return cont(metadef);\n if (type == \"var\") return cont(pushlex(\"vardef\"), vardef1, expect(\";\"), poplex);\n if (type == \"keyword a\") return cont(pushlex(\"form\"), expression, statement, poplex);\n if (type == \"keyword b\") return cont(pushlex(\"form\"), statement, poplex);\n if (type == \"{\") return cont(pushlex(\"}\"), pushcontext, block, poplex, popcontext);\n if (type == \";\") return cont();\n if (type == \"attribute\") return cont(maybeattribute);\n if (type == \"function\") return cont(functiondef);\n if (type == \"for\") return cont(pushlex(\"form\"), expect(\"(\"), pushlex(\")\"), forspec1, expect(\")\"),\n poplex, statement, poplex);\n if (type == \"variable\") return cont(pushlex(\"stat\"), maybelabel);\n if (type == \"switch\") return cont(pushlex(\"form\"), expression, pushlex(\"}\", \"switch\"), expect(\"{\"),\n block, poplex, poplex);\n if (type == \"case\") return cont(expression, expect(\":\"));\n if (type == \"default\") return cont(expect(\":\"));\n if (type == \"catch\") return cont(pushlex(\"form\"), pushcontext, expect(\"(\"), funarg, expect(\")\"),\n statement, poplex, popcontext);\n if (type == \"import\") return cont(importdef, expect(\";\"));\n if (type == \"typedef\") return cont(typedef);\n return pass(pushlex(\"stat\"), expression, expect(\";\"), poplex);\n }\n function expression(type) {\n if (atomicTypes.hasOwnProperty(type)) return cont(maybeoperator);\n if (type == \"type\" ) return cont(maybeoperator);\n if (type == \"function\") return cont(functiondef);\n if (type == \"keyword c\") return cont(maybeexpression);\n if (type == \"(\") return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex, maybeoperator);\n if (type == \"operator\") return cont(expression);\n if (type == \"[\") return cont(pushlex(\"]\"), commasep(maybeexpression, \"]\"), poplex, maybeoperator);\n if (type == \"{\") return cont(pushlex(\"}\"), commasep(objprop, \"}\"), poplex, maybeoperator);\n return cont();\n }\n function maybeexpression(type) {\n if (type.match(/[;\\}\\)\\],]/)) return pass();\n return pass(expression);\n }\n\n function maybeoperator(type, value) {\n if (type == \"operator\" && /\\+\\+|--/.test(value)) return cont(maybeoperator);\n if (type == \"operator\" || type == \":\") return cont(expression);\n if (type == \";\") return;\n if (type == \"(\") return cont(pushlex(\")\"), commasep(expression, \")\"), poplex, maybeoperator);\n if (type == \".\") return cont(property, maybeoperator);\n if (type == \"[\") return cont(pushlex(\"]\"), expression, expect(\"]\"), poplex, maybeoperator);\n }\n\n function maybeattribute(type) {\n if (type == \"attribute\") return cont(maybeattribute);\n if (type == \"function\") return cont(functiondef);\n if (type == \"var\") return cont(vardef1);\n }\n\n function metadef(type) {\n if(type == \":\") return cont(metadef);\n if(type == \"variable\") return cont(metadef);\n if(type == \"(\") return cont(pushlex(\")\"), commasep(metaargs, \")\"), poplex, statement);\n }\n function metaargs(type) {\n if(type == \"variable\") return cont();\n }\n\n function importdef (type, value) {\n if(type == \"variable\" && /[A-Z]/.test(value.charAt(0))) { registerimport(value); return cont(); }\n else if(type == \"variable\" || type == \"property\" || type == \".\" || value == \"*\") return cont(importdef);\n }\n\n function typedef (type, value)\n {\n if(type == \"variable\" && /[A-Z]/.test(value.charAt(0))) { registerimport(value); return cont(); }\n else if (type == \"type\" && /[A-Z]/.test(value.charAt(0))) { return cont(); }\n }\n\n function maybelabel(type) {\n if (type == \":\") return cont(poplex, statement);\n return pass(maybeoperator, expect(\";\"), poplex);\n }\n function property(type) {\n if (type == \"variable\") {cx.marked = \"property\"; return cont();}\n }\n function objprop(type) {\n if (type == \"variable\") cx.marked = \"property\";\n if (atomicTypes.hasOwnProperty(type)) return cont(expect(\":\"), expression);\n }\n function commasep(what, end) {\n function proceed(type) {\n if (type == \",\") return cont(what, proceed);\n if (type == end) return cont();\n return cont(expect(end));\n }\n return function(type) {\n if (type == end) return cont();\n else return pass(what, proceed);\n };\n }\n function block(type) {\n if (type == \"}\") return cont();\n return pass(statement, block);\n }\n function vardef1(type, value) {\n if (type == \"variable\"){register(value); return cont(typeuse, vardef2);}\n return cont();\n }\n function vardef2(type, value) {\n if (value == \"=\") return cont(expression, vardef2);\n if (type == \",\") return cont(vardef1);\n }\n function forspec1(type, value) {\n if (type == \"variable\") {\n register(value);\n return cont(forin, expression)\n } else {\n return pass()\n }\n }\n function forin(_type, value) {\n if (value == \"in\") return cont();\n }\n function functiondef(type, value) {\n //function names starting with upper-case letters are recognised as types, so cludging them together here.\n if (type == \"variable\" || type == \"type\") {register(value); return cont(functiondef);}\n if (value == \"new\") return cont(functiondef);\n if (type == \"(\") return cont(pushlex(\")\"), pushcontext, commasep(funarg, \")\"), poplex, typeuse, statement, popcontext);\n }\n function typeuse(type) {\n if(type == \":\") return cont(typestring);\n }\n function typestring(type) {\n if(type == \"type\") return cont();\n if(type == \"variable\") return cont();\n if(type == \"{\") return cont(pushlex(\"}\"), commasep(typeprop, \"}\"), poplex);\n }\n function typeprop(type) {\n if(type == \"variable\") return cont(typeuse);\n }\n function funarg(type, value) {\n if (type == \"variable\") {register(value); return cont(typeuse);}\n }\n\n // Interface\n return {\n startState: function(basecolumn) {\n var defaulttypes = [\"Int\", \"Float\", \"String\", \"Void\", \"Std\", \"Bool\", \"Dynamic\", \"Array\"];\n var state = {\n tokenize: haxeTokenBase,\n reAllowed: true,\n kwAllowed: true,\n cc: [],\n lexical: new HaxeLexical((basecolumn || 0) - indentUnit, 0, \"block\", false),\n localVars: parserConfig.localVars,\n importedtypes: defaulttypes,\n context: parserConfig.localVars && {vars: parserConfig.localVars},\n indented: 0\n };\n if (parserConfig.globalVars && typeof parserConfig.globalVars == \"object\")\n state.globalVars = parserConfig.globalVars;\n return state;\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = false;\n state.indented = stream.indentation();\n }\n if (stream.eatSpace()) return null;\n var style = state.tokenize(stream, state);\n if (type == \"comment\") return style;\n state.reAllowed = !!(type == \"operator\" || type == \"keyword c\" || type.match(/^[\\[{}\\(,;:]$/));\n state.kwAllowed = type != '.';\n return parseHaxe(state, style, type, content, stream);\n },\n\n indent: function(state, textAfter) {\n if (state.tokenize != haxeTokenBase) return 0;\n var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical;\n if (lexical.type == \"stat\" && firstChar == \"}\") lexical = lexical.prev;\n var type = lexical.type, closing = firstChar == type;\n if (type == \"vardef\") return lexical.indented + 4;\n else if (type == \"form\" && firstChar == \"{\") return lexical.indented;\n else if (type == \"stat\" || type == \"form\") return lexical.indented + indentUnit;\n else if (lexical.info == \"switch\" && !closing)\n return lexical.indented + (/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 2 * indentUnit);\n else if (lexical.align) return lexical.column + (closing ? 0 : 1);\n else return lexical.indented + (closing ? 0 : indentUnit);\n },\n\n electricChars: \"{}\",\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\",\n lineComment: \"//\"\n };\n});\n\nCodeMirror.defineMIME(\"text/x-haxe\", \"haxe\");\n\nCodeMirror.defineMode(\"hxml\", function () {\n\n return {\n startState: function () {\n return {\n define: false,\n inString: false\n };\n },\n token: function (stream, state) {\n var ch = stream.peek();\n var sol = stream.sol();\n\n ///* comments */\n if (ch == \"#\") {\n stream.skipToEnd();\n return \"comment\";\n }\n if (sol && ch == \"-\") {\n var style = \"variable-2\";\n\n stream.eat(/-/);\n\n if (stream.peek() == \"-\") {\n stream.eat(/-/);\n style = \"keyword a\";\n }\n\n if (stream.peek() == \"D\") {\n stream.eat(/[D]/);\n style = \"keyword c\";\n state.define = true;\n }\n\n stream.eatWhile(/[A-Z]/i);\n return style;\n }\n\n var ch = stream.peek();\n\n if (state.inString == false && ch == \"'\") {\n state.inString = true;\n stream.next();\n }\n\n if (state.inString == true) {\n if (stream.skipTo(\"'\")) {\n\n } else {\n stream.skipToEnd();\n }\n\n if (stream.peek() == \"'\") {\n stream.next();\n state.inString = false;\n }\n\n return \"string\";\n }\n\n stream.next();\n return null;\n },\n lineComment: \"#\"\n };\n});\n\nCodeMirror.defineMIME(\"text/x-hxml\", \"hxml\");\n\n});\n"]}