ace.define("ace/mode/makefile",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/makefile_highlight_rules","ace/mode/folding/coffee"],(function(e,t,i){var n=e("../lib/oop"),o=e("./text").Mode,r=e("../tokenizer").Tokenizer,a=e("./makefile_highlight_rules").MakefileHighlightRules,l=e("./folding/coffee").FoldMode,s=function(){var e=new a;this.foldingRules=new l,this.$tokenizer=new r(e.getRules())};n.inherits(s,o),function(){}.call(s.prototype),t.Mode=s})),ace.define("ace/mode/makefile_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/sh_highlight_rules"],(function(e,t,i){var n=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,r=e("./sh_highlight_rules"),a=function(){var e=this.createKeywordMapper({keyword:r.reservedKeywords,"support.function.builtin":r.languageConstructs,"invalid.deprecated":"debugger"},"string");this.$rules={start:[{token:"string.interpolated.backtick.makefile",regex:"`",next:"shell-start"},{token:"punctuation.definition.comment.makefile",regex:/#(?=.)/,next:"comment"},{token:["keyword.control.makefile"],regex:"^(?:\\s*\\b)(\\-??include|ifeq|ifneq|ifdef|ifndef|else|endif|vpath|export|unexport|define|endef|override)(?:\\b)"},{token:["entity.name.function.makefile","text"],regex:"^([^\\t ]+(?:\\s[^\\t ]+)*:)(\\s*.*)"}],comment:[{token:"punctuation.definition.comment.makefile",regex:/.+\\/},{token:"punctuation.definition.comment.makefile",regex:".+",next:"start"}],"shell-start":[{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"string",regex:"\\w+"},{token:"string.interpolated.backtick.makefile",regex:"`",next:"start"}]}};n.inherits(a,o),t.MakefileHighlightRules=a})),ace.define("ace/mode/sh_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,i){var n=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,r=t.reservedKeywords="!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set",a=t.languageConstructs="[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait",l=function(){var e=this.createKeywordMapper({keyword:r,"support.function.builtin":a,"invalid.deprecated":"debugger"},"identifier"),t="(?:\\d+)",i="(?:(?:"+t+"?(?:\\.\\d+))|(?:"+t+"\\.))",n="(?:"+("(?:(?:"+i+"|"+t+"))")+"|"+i+")",o="(?:&"+t+")",l="[a-zA-Z][a-zA-Z0-9_]*",s="(?:(?:\\$"+l+")|(?:"+l+"=))",g="(?:"+l+"\\s*\\(\\))";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:'"(?:[^\\\\]|\\\\.)*?"'},{token:"variable.language",regex:"(?:\\$(?:SHLVL|\\$|\\!|\\?))"},{token:"variable",regex:s},{token:"support.function",regex:g},{token:"support.function",regex:o},{token:"string",regex:"'(?:[^\\\\]|\\\\.)*?'"},{token:"constant.numeric",regex:n},{token:"constant.numeric",regex:"(?:(?:[1-9]\\d*)|(?:0))\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|~|<|>|<=|=>|=|!="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}]}};n.inherits(l,o),t.ShHighlightRules=l})),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],(function(e,t,i){var n=e("../../lib/oop"),o=e("./fold_mode").FoldMode,r=e("../../range").Range,a=t.FoldMode=function(){};n.inherits(a,o),function(){this.getFoldWidgetRange=function(e,t,i){var n=this.indentationBlock(e,i);if(n)return n;var o=/\S/,a=e.getLine(i),l=a.search(o);if(-1!=l&&"#"==a[l]){for(var s=a.length,g=e.getLength(),d=i,c=i;++i<g;){var f=(a=e.getLine(i)).search(o);if(-1!=f){if("#"!=a[f])break;c=i}}if(c>d){var u=e.getLine(c).length;return new r(d,s,c,u)}}},this.getFoldWidget=function(e,t,i){var n=e.getLine(i),o=n.search(/\S/),r=e.getLine(i+1),a=e.getLine(i-1),l=a.search(/\S/),s=r.search(/\S/);if(-1==o)return e.foldWidgets[i-1]=-1!=l&&l<s?"start":"","";if(-1==l){if(o==s&&"#"==n[o]&&"#"==r[o])return e.foldWidgets[i-1]="",e.foldWidgets[i+1]="","start"}else if(l==o&&"#"==n[o]&&"#"==a[o]&&-1==e.getLine(i-2).search(/\S/))return e.foldWidgets[i-1]="start",e.foldWidgets[i+1]="","";return e.foldWidgets[i-1]=-1!=l&&l<o?"start":"",o<s?"start":""}}.call(a.prototype)}));
