{"version":3,"file":"mode-c_cpp-0a8cee2a.js","sources":["../../node_modules/ace-builds/src-noconflict/mode-c_cpp.js"],"sourcesContent":["ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar DocCommentHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"comment.doc.tag\",\n regex: \"@\\\\w+(?=\\\\s|$)\"\n }, DocCommentHighlightRules.getTagRule(), {\n defaultToken: \"comment.doc\",\n caseInsensitive: true\n }\n ]\n };\n};\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\nDocCommentHighlightRules.getTagRule = function (start) {\n return {\n token: \"comment.doc.tag.storage.type\",\n regex: \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\nDocCommentHighlightRules.getStartRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\/\\\\*(?=\\\\*)\",\n next: start\n };\n};\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token: \"comment.doc\",\n regex: \"\\\\*\\\\/\",\n next: start\n };\n};\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/c_cpp_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar DocCommentHighlightRules = require(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar cFunctions = exports.cFunctions = \"hypot|hypotf|hypotl|sscanf|system|snprintf|scanf|scalbn|scalbnf|scalbnl|scalbln|scalblnf|scalblnl|sin|sinh|sinhf|sinhl|sinf|sinl|signal|signbit|strstr|strspn|strncpy|strncat|strncmp|strcspn|strchr|strcoll|strcpy|strcat|strcmp|strtoimax|strtod|strtoul|strtoull|strtoumax|strtok|strtof|strtol|strtold|strtoll|strerror|strpbrk|strftime|strlen|strrchr|strxfrm|sprintf|setjmp|setvbuf|setlocale|setbuf|sqrt|sqrtf|sqrtl|swscanf|swprintf|srand|nearbyint|nearbyintf|nearbyintl|nexttoward|nexttowardf|nexttowardl|nextafter|nextafterf|nextafterl|nan|nanf|nanl|csin|csinh|csinhf|csinhl|csinf|csinl|csqrt|csqrtf|csqrtl|ccos|ccosh|ccoshf|ccosf|ccosl|cimag|cimagf|cimagl|ctime|ctan|ctanh|ctanhf|ctanhl|ctanf|ctanl|cos|cosh|coshf|coshl|cosf|cosl|conj|conjf|conjl|copysign|copysignf|copysignl|cpow|cpowf|cpowl|cproj|cprojf|cprojl|ceil|ceilf|ceill|cexp|cexpf|cexpl|clock|clog|clogf|clogl|clearerr|casin|casinh|casinhf|casinhl|casinf|casinl|cacos|cacosh|cacoshf|cacoshl|cacosf|cacosl|catan|catanh|catanhf|catanhl|catanf|catanl|calloc|carg|cargf|cargl|cabs|cabsf|cabsl|creal|crealf|creall|cbrt|cbrtf|cbrtl|time|toupper|tolower|tan|tanh|tanhf|tanhl|tanf|tanl|trunc|truncf|truncl|tgamma|tgammaf|tgammal|tmpnam|tmpfile|isspace|isnormal|isnan|iscntrl|isinf|isdigit|isunordered|isupper|ispunct|isprint|isfinite|iswspace|iswcntrl|iswctype|iswdigit|iswupper|iswpunct|iswprint|iswlower|iswalnum|iswalpha|iswgraph|iswxdigit|iswblank|islower|isless|islessequal|islessgreater|isalnum|isalpha|isgreater|isgreaterequal|isgraph|isxdigit|isblank|ilogb|ilogbf|ilogbl|imaxdiv|imaxabs|div|difftime|_Exit|ungetc|ungetwc|pow|powf|powl|puts|putc|putchar|putwc|putwchar|perror|printf|erf|erfc|erfcf|erfcl|erff|erfl|exit|exp|exp2|exp2f|exp2l|expf|expl|expm1|expm1f|expm1l|vsscanf|vsnprintf|vscanf|vsprintf|vswscanf|vswprintf|vprintf|vfscanf|vfprintf|vfwscanf|vfwprintf|vwscanf|vwprintf|va_start|va_copy|va_end|va_arg|qsort|fscanf|fsetpos|fseek|fclose|ftell|fopen|fdim|fdimf|fdiml|fpclassify|fputs|fputc|fputws|fputwc|fprintf|feholdexcept|fesetenv|fesetexceptflag|fesetround|feclearexcept|fetestexcept|feof|feupdateenv|feraiseexcept|ferror|fegetenv|fegetexceptflag|fegetround|fflush|fwscanf|fwide|fwprintf|fwrite|floor|floorf|floorl|fabs|fabsf|fabsl|fgets|fgetc|fgetpos|fgetws|fgetwc|freopen|free|fread|frexp|frexpf|frexpl|fmin|fminf|fminl|fmod|fmodf|fmodl|fma|fmaf|fmal|fmax|fmaxf|fmaxl|ldiv|ldexp|ldexpf|ldexpl|longjmp|localtime|localeconv|log|log1p|log1pf|log1pl|log10|log10f|log10l|log2|log2f|log2l|logf|logl|logb|logbf|logbl|labs|lldiv|llabs|llrint|llrintf|llrintl|llround|llroundf|llroundl|lrint|lrintf|lrintl|lround|lroundf|lroundl|lgamma|lgammaf|lgammal|wscanf|wcsstr|wcsspn|wcsncpy|wcsncat|wcsncmp|wcscspn|wcschr|wcscoll|wcscpy|wcscat|wcscmp|wcstoimax|wcstod|wcstoul|wcstoull|wcstoumax|wcstok|wcstof|wcstol|wcstold|wcstoll|wcstombs|wcspbrk|wcsftime|wcslen|wcsrchr|wcsrtombs|wcsxfrm|wctob|wctomb|wcrtomb|wprintf|wmemset|wmemchr|wmemcpy|wmemcmp|wmemmove|assert|asctime|asin|asinh|asinhf|asinhl|asinf|asinl|acos|acosh|acoshf|acoshl|acosf|acosl|atoi|atof|atol|atoll|atexit|atan|atanh|atanhf|atanhl|atan2|atan2f|atan2l|atanf|atanl|abs|abort|gets|getc|getchar|getenv|getwc|getwchar|gmtime|rint|rintf|rintl|round|roundf|roundl|rename|realloc|rewind|remove|remquo|remquof|remquol|remainder|remainderf|remainderl|rand|raise|bsearch|btowc|modf|modff|modfl|memset|memchr|memcpy|memcmp|memmove|mktime|malloc|mbsinit|mbstowcs|mbsrtowcs|mbtowc|mblen|mbrtowc|mbrlen\";\nvar c_cppHighlightRules = function (extraKeywords) {\n var keywordControls = (\"break|case|continue|default|do|else|for|goto|if|_Pragma|\" +\n \"return|switch|while|catch|operator|try|throw|using\");\n var storageType = (\"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|\" +\n \"_Imaginary|int|int8_t|int16_t|int32_t|int64_t|long|short|signed|size_t|struct|typedef|uint8_t|uint16_t|uint32_t|uint64_t|union|unsigned|void|\" +\n \"class|wchar_t|template|char16_t|char32_t\");\n var storageModifiers = (\"const|extern|register|restrict|static|volatile|inline|private|\" +\n \"protected|public|friend|explicit|virtual|export|mutable|typename|\" +\n \"constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local\");\n var keywordOperators = (\"and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|\" +\n \"const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace\");\n var builtinConstants = (\"NULL|true|false|TRUE|FALSE|nullptr\");\n var keywordMapper = this.$keywords = this.createKeywordMapper(Object.assign({\n \"keyword.control\": keywordControls,\n \"storage.type\": storageType,\n \"storage.modifier\": storageModifiers,\n \"keyword.operator\": keywordOperators,\n \"variable.language\": \"this\",\n \"constant.language\": builtinConstants,\n \"support.function.C99.c\": cFunctions\n }, extraKeywords), \"identifier\");\n var identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\\\\b\";\n var escapeRe = /\\\\(?:['\"?\\\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}U[a-fA-F\\d]{8}|.)/.source;\n var formatRe = \"%\"\n + /(\\d+\\$)?/.source // field (argument #)\n + /[#0\\- +']*/.source // flags\n + /[,;:_]?/.source // separator character (AltiVec)\n + /((-?\\d+)|\\*(-?\\d+\\$)?)?/.source // minimum field width\n + /(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?/.source // precision\n + /(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?/.source // length modifier\n + /(\\[[^\"\\]]+\\]|[diouxXDOUeEfFgGaACcSspn%])/.source; // conversion type\n this.$rules = {\n \"start\": [\n {\n token: \"comment\",\n regex: \"//$\",\n next: \"start\"\n }, {\n token: \"comment\",\n regex: \"//\",\n next: \"singleLineComment\"\n },\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n {\n token: \"comment\",\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"string\",\n regex: \"'(?:\" + escapeRe + \"|.)?'\"\n }, {\n token: \"string.start\",\n regex: '\"',\n stateName: \"qqstring\",\n next: [\n { token: \"string\", regex: /\\\\\\s*$/, next: \"qqstring\" },\n { token: \"constant.language.escape\", regex: escapeRe },\n { token: \"constant.language.escape\", regex: formatRe },\n { token: \"string.end\", regex: '\"|$', next: \"start\" },\n { defaultToken: \"string\" }\n ]\n }, {\n token: \"string.start\",\n regex: 'R\"\\\\(',\n stateName: \"rawString\",\n next: [\n { token: \"string.end\", regex: '\\\\)\"', next: \"start\" },\n { defaultToken: \"string\" }\n ]\n }, {\n token: \"constant.numeric\",\n regex: \"0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n }, {\n token: \"constant.numeric\",\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\\\b\"\n }, {\n token: \"keyword\",\n regex: \"#\\\\s*(?:include|import|pragma|line|define|undef)\\\\b\",\n next: \"directive\"\n }, {\n token: \"keyword\",\n regex: \"#\\\\s*(?:endif|if|ifdef|else|elif|ifndef)\\\\b\"\n }, {\n token: keywordMapper,\n regex: \"[a-zA-Z_$][a-zA-Z0-9_$]*\"\n }, {\n token: \"keyword.operator\",\n regex: /--|\\+\\+|<<=|>>=|>>>=|<>|&&|\\|\\||\\?:|[*%\\/+\\-&\\^|~!<>=]=?/\n }, {\n token: \"punctuation.operator\",\n regex: \"\\\\?|\\\\:|\\\\,|\\\\;|\\\\.\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"comment\": [\n {\n token: \"comment\",\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ],\n \"singleLineComment\": [\n {\n token: \"comment\",\n regex: /\\\\$/,\n next: \"singleLineComment\"\n }, {\n token: \"comment\",\n regex: /$/,\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ],\n \"directive\": [\n {\n token: \"constant.other.multiline\",\n regex: /\\\\/\n },\n {\n token: \"constant.other.multiline\",\n regex: /.*\\\\/\n },\n {\n token: \"constant.other\",\n regex: \"\\\\s*<.+?>\",\n next: \"start\"\n },\n {\n token: \"constant.other\",\n regex: '\\\\s*[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]',\n next: \"start\"\n },\n {\n token: \"constant.other\",\n regex: \"\\\\s*['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\",\n next: \"start\"\n },\n {\n token: \"constant.other\",\n regex: /[^\\\\\\/]+/,\n next: \"start\"\n }\n ]\n };\n this.embedRules(DocCommentHighlightRules, \"doc-\", [DocCommentHighlightRules.getEndRule(\"start\")]);\n this.normalizeRules();\n};\noop.inherits(c_cppHighlightRules, TextHighlightRules);\nexports.c_cppHighlightRules = c_cppHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/c_cpp\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/c_cpp_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar c_cppHighlightRules = require(\"./c_cpp_highlight_rules\").c_cppHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = c_cppHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n else if (state == \"doc-start\") {\n if (endState == \"start\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/c_cpp\";\n this.snippetFileId = \"ace/snippets/c_cpp\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/c_cpp\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n "],"names":["require","exports","module","oop","TextHighlightRules","DocCommentHighlightRules","start","cFunctions","c_cppHighlightRules","extraKeywords","keywordControls","storageType","storageModifiers","keywordOperators","builtinConstants","keywordMapper","escapeRe","formatRe","Range","MatchingBraceOutdent","line","input","doc","row","match","column","openBracePos","indent","BaseFoldMode","FoldMode","commentRegex","session","foldStyle","fw","forceMultiline","i","range","startIndent","startRow","startColumn","endRow","maxRow","subRange","re","depth","m","TextMode","CStyleFoldMode","Mode","state","tab","tokenizedLine","tokens","endState"],"mappings":"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","x_google_ignoreList":[0]}