ace.define("ace/mode/scheme_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,d,m){"use strict";var l=a("../lib/oop"),h=a("./text_highlight_rules").TextHighlightRules,i=function(){var n=this.createKeywordMapper({"keyword.control":"case|do|let|loop|if|else|when","keyword.operator":"eq?|eqv?|equal?|and|or|not|null?","constant.language":"#t|#f","support.function":"cons|car|cdr|cond|lambda|lambda*|syntax-rules|format|set!|quote|eval|append|list|list?|member?|load"},"identifier",!0);this.$rules={start:[{token:"comment",regex:";.*$"},{token:["storage.type.function-type.scheme","text","entity.name.function.scheme"],regex:"(?:\\b(?:(define|define-syntax|define-macro))\\b)(\\s+)((?:\\w|\\-|\\!|\\?)*)"},{token:"punctuation.definition.constant.character.scheme",regex:"#:\\S+"},{token:["punctuation.definition.variable.scheme","variable.other.global.scheme","punctuation.definition.variable.scheme"],regex:"(\\*)(\\S*)(\\*)"},{token:"constant.numeric",regex:"#[xXoObB][0-9a-fA-F]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?"},{token:n,regex:"[a-zA-Z_#][a-zA-Z0-9_\\-\\?\\!\\*]*"},{token:"string",regex:'"(?=.)',next:"qqstring"}],qqstring:[{token:"constant.character.escape.scheme",regex:"\\\\."},{token:"string",regex:'[^"\\\\]+',merge:!0},{token:"string",regex:"\\\\$",next:"qqstring",merge:!0},{token:"string",regex:'"|$',next:"start",merge:!0}]}};l.inherits(i,h),d.SchemeHighlightRules=i}),ace.define("ace/mode/matching_parens_outdent",["require","exports","module","ace/range"],function(a,d,m){"use strict";var l=a("../range").Range,h=function(){};(function(){this.checkOutdent=function(i,r){return!!/^\s+$/.test(i)&&/^\s*\)/.test(r)},this.autoOutdent=function(i,r){var e=i.getLine(r).match(/^(\s*\))/);if(!e)return 0;var t=e[1].length,n=i.findMatchingBracket({row:r,column:t});if(!n||n.row==r)return 0;var u=this.$getIndent(i.getLine(n.row));i.replace(new l(r,0,r,t-1),u)},this.$getIndent=function(i){var r=i.match(/^(\s+)/);return r?r[1]:""}}).call(h.prototype),d.MatchingParensOutdent=h}),ace.define("ace/mode/scheme",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/scheme_highlight_rules","ace/mode/matching_parens_outdent"],function(a,d,m){"use strict";var l=a("../lib/oop"),h=a("./text").Mode,i=a("./scheme_highlight_rules").SchemeHighlightRules,r=a("./matching_parens_outdent").MatchingParensOutdent,c=function(){this.HighlightRules=i,this.$outdent=new r,this.$behaviour=this.$defaultBehaviour};l.inherits(c,h),function(){this.lineCommentStart=";",this.minorIndentFunctions=["define","lambda","define-macro","define-syntax","syntax-rules","define-record-type","define-structure"],this.$toIndent=function(e){return e.split("").map(function(t){return/\s/.exec(t)?t:" "}).join("")},this.$calculateIndent=function(e,t){for(var g,o,n=this.$getIndent(e),u=0,s=e.length-1;s>=0&&("("===(o=e[s])?(u--,g=!0):"("===o||"["===o||"{"===o?(u--,g=!1):(")"===o||"]"===o||"}"===o)&&u++,!(u<0));s--);if(!(u<0&&g))return u<0&&!g?this.$toIndent(e.substring(0,s+1)):(u>0&&(n=n.substring(0,n.length-t.length)),n);for(var f=s+=1,p="";;){if(" "===(o=e[s])||"\t"===o)return-1!==this.minorIndentFunctions.indexOf(p)?this.$toIndent(e.substring(0,f-1)+t):this.$toIndent(e.substring(0,s+1));if(void 0===o)return this.$toIndent(e.substring(0,f-1)+t);p+=e[s],s++}},this.getNextLineIndent=function(e,t,n){return this.$calculateIndent(t,n)},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/scheme"}.call(c.prototype),d.Mode=c}),ace.require(["ace/mode/scheme"],function(a){"object"==typeof module&&"object"==typeof exports&&module&&(module.exports=a)});