1
|
{"version":3,"sources":["webpack:///./node_modules/brace/mode/perl.js"],"names":["ace","define","acequire","exports","module","oop","TextHighlightRules","PerlHighlightRules","keywordMapper","this","createKeywordMapper","keyword","constant.language","support.function","$rules","start","token","regex","next","qqstring","qstring","block_comment","defaultToken","inherits","Range","MatchingBraceOutdent","checkOutdent","line","input","test","autoOutdent","doc","row","match","getLine","column","length","openBracePos","findMatchingBracket","indent","$getIndent","replace","call","prototype","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","RegExp","source","foldingStopMarker","end","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","session","foldStyle","fw","getFoldWidgetRange","forceMultiline","getCommentRegionBlock","i","index","openingBracketBlock","range","getCommentFoldRange","isMultiLine","getSectionRange","closingBracketBlock","startIndent","search","startRow","startColumn","endRow","maxRow","getLength","subRange","re","depth","m","exec","TextMode","Mode","CStyleFoldMode","HighlightRules","$outdent","foldingRules","$behaviour","$defaultBehaviour","lineCommentStart","blockComment","lineStartOnly","getNextLineIndent","state","tab","tokens","getTokenizer","getLineTokens","type","$id"],"mappings":"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","file":"pl-mode.bundle.js","sourcesContent":["ace.define(\"ace/mode/perl_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar PerlHighlightRules = function() {\n\n var keywords = (\n \"base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|\" +\n \"no|package|parent|redo|acequire|scalar|sub|unless|until|while|use|vars\"\n );\n\n var buildinConstants = (\"ARGV|ENV|INC|SIG\");\n\n var builtinFunctions = (\n \"getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|\" +\n \"gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|\" +\n \"getpeername|setpriority|getprotoent|setprotoent|getpriority|\" +\n \"endprotoent|getservent|setservent|endservent|sethostent|socketpair|\" +\n \"getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|\" +\n \"localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|\" +\n \"closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|\" +\n \"shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|\" +\n \"dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|\" +\n \"setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|\" +\n \"lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|\" +\n \"waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|\" +\n \"chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|\" +\n \"unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|\" +\n \"length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|\" +\n \"undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|\" +\n \"sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|\" +\n \"BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|\" +\n \"join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|\" +\n \"keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|\" +\n \"eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|\" +\n \"map|die|uc|lc|do\"\n );\n\n var keywordMapper = this.createKeywordMapper({\n \"keyword\": keywords,\n \"constant.language\": buildinConstants,\n \"support.function\": builtinFunctions\n }, \"identifier\");\n\n this.$rules = {\n \"start\" : [\n {\n token : \"comment.doc\",\n regex : \"^=(?:begin|item)\\\\b\",\n next : \"block_comment\"\n }, {\n token : \"string.regexp\",\n regex : \"[/](?:(?:\\\\[(?:\\\\\\\\]|[^\\\\]])+\\\\])|(?:\\\\\\\\/|[^\\\\]/]))*[/]\\\\w*\\\\s*(?=[).,;]|$)\"\n }, {\n token : \"string\", // single line\n regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token : \"string\", // multi line string start\n regex : '[\"].*\\\\\\\\$',\n next : \"qqstring\"\n }, {\n token : \"string\", // single line\n regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token : \"string\", // multi line string start\n regex : \"['].*\\\\\\\\$\",\n next : \"qstring\"\n }, {\n token : \"constant.numeric\", // hex\n regex : \"0x[0-9a-fA-F]+\\\\b\"\n }, {\n token : \"constant.numeric\", // float\n regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token : keywordMapper,\n regex : \"[a-zA-Z_$][a-zA-Z0-9_$]*\\\\b\"\n }, {\n token : \"keyword.operator\",\n regex : \"%#|\\\\$#|\\\\.\\\\.\\\\.|\\\\|\\\\|=|>>=|<<=|<=>|&&=|=>|!~|\\\\^=|&=|\\\\|=|\\\\.=|x=|%=|\\\\/=|\\\\*=|\\\\-=|\\\\+=|=~|\\\\*\\\\*|\\\\-\\\\-|\\\\.\\\\.|\\\\|\\\\||&&|\\\\+\\\\+|\\\\->|!=|==|>=|<=|>>|<<|,|=|\\\\?\\\\:|\\\\^|\\\\||x|%|\\\\/|\\\\*|<|&|\\\\\\\\|~|!|>|\\\\.|\\\\-|\\\\+|\\\\-C|\\\\-b|\\\\-S|\\\\-u|\\\\-t|\\\\-p|\\\\-l|\\\\-d|\\\\-f|\\\\-g|\\\\-s|\\\\-z|\\\\-k|\\\\-e|\\\\-O|\\\\-T|\\\\-B|\\\\-M|\\\\-A|\\\\-X|\\\\-W|\\\\-c|\\\\-R|\\\\-o|\\\\-x|\\\\-w|\\\\-r|\\\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\"\n }, {\n token : \"comment\",\n regex : \"#.*$\"\n }, {\n token : \"lparen\",\n regex : \"[[({]\"\n }, {\n token : \"rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : \"\\\\s+\"\n }\n ],\n \"qqstring\" : [\n {\n token : \"string\",\n regex : '(?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?\"',\n next : \"start\"\n }, {\n token : \"string\",\n regex : '.+'\n }\n ],\n \"qstring\" : [\n {\n token : \"string\",\n regex : \"(?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?'\",\n next : \"start\"\n }, {\n token : \"string\",\n regex : '.+'\n }\n ],\n \"block_comment\": [\n {\n token: \"comment.doc\", \n regex: \"^=cut\\\\b\",\n next: \"start\"\n },\n {\n defaultToken: \"comment.doc\"\n }\n ]\n };\n};\n\noop.inherits(PerlHighlightRules, TextHighlightRules);\n\nexports.PerlHighlightRules = PerlHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \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 \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\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 \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\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 \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) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/perl\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/perl_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar PerlHighlightRules = acequire(\"./perl_highlight_rules\").PerlHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = PerlHighlightRules;\n \n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new CStyleFoldMode({start: \"^=(begin|item)\\\\b\", end: \"^=(cut)\\\\b\"});\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.lineCommentStart = \"#\";\n this.blockComment = [\n {start: \"=begin\", end: \"=cut\", lineStartOnly: true},\n {start: \"=item\", end: \"=cut\", lineStartOnly: true}\n ];\n\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n\n if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n return indent;\n }\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[:]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.$id = \"ace/mode/perl\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/brace/mode/perl.js\n// module id = ./node_modules/brace/mode/perl.js\n// module chunks = 23"],"sourceRoot":""}
|