ace.define("ace/mode/pascal_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,o){"use strict";var n=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,r=function(){var e=this.createKeywordMapper({"keyword.control":"absolute|abstract|all|and|and_then|array|as|asm|attribute|begin|bindable|case|class|const|constructor|destructor|div|do|do|else|end|except|export|exports|external|far|file|finalization|finally|for|forward|goto|if|implementation|import|in|inherited|initialization|interface|interrupt|is|label|library|mod|module|name|near|nil|not|object|of|only|operator|or|or_else|otherwise|packed|pow|private|program|property|protected|public|published|qualified|record|repeat|resident|restricted|segment|set|shl|shr|then|to|try|type|unit|until|uses|value|var|view|virtual|while|with|xor"},"identifier",!0);this.$rules={start:[{caseInsensitive:!0,token:["variable","text","storage.type.prototype","entity.name.function.prototype"],regex:"\\b(function|procedure)(\\s+)(\\w+)(\\.\\w+)?(?=(?:\\(.*?\\))?;\\s*(?:attribute|forward|external))"},{caseInsensitive:!0,token:["variable","text","storage.type.function","entity.name.function"],regex:"\\b(function|procedure)(\\s+)(\\w+)(\\.\\w+)?"},{caseInsensitive:!0,token:e,regex:/\b[a-z_]+\b/},{token:"constant.numeric",regex:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"punctuation.definition.comment",regex:"--.*$"},{token:"punctuation.definition.comment",regex:"//.*$"},{token:"punctuation.definition.comment",regex:"\\(\\*",push:[{token:"punctuation.definition.comment",regex:"\\*\\)",next:"pop"},{defaultToken:"comment.block.one"}]},{token:"punctuation.definition.comment",regex:"\\{",push:[{token:"punctuation.definition.comment",regex:"\\}",next:"pop"},{defaultToken:"comment.block.two"}]},{token:"punctuation.definition.string.begin",regex:'"',push:[{token:"constant.character.escape",regex:"\\\\."},{token:"punctuation.definition.string.end",regex:'"',next:"pop"},{defaultToken:"string.quoted.double"}]},{token:"punctuation.definition.string.begin",regex:"'",push:[{token:"constant.character.escape.apostrophe",regex:"''"},{token:"punctuation.definition.string.end",regex:"'",next:"pop"},{defaultToken:"string.quoted.single"}]},{token:"keyword.operator",regex:"[+\\-;,/*%]|:=|="}]},this.normalizeRules()};n.inherits(r,i),t.PascalHighlightRules=r})),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],(function(e,t,o){"use strict";var n=e("../../lib/oop"),i=e("./fold_mode").FoldMode,r=e("../../range").Range,a=t.FoldMode=function(){};n.inherits(a,i),function(){this.commentBlock=function(e,t){var o=/\S/,n=e.getLine(t),i=n.search(o);if(-1!=i&&"#"==n[i]){for(var a=n.length,s=e.getLength(),l=t,c=t;++t<s;){var d=(n=e.getLine(t)).search(o);if(-1!=d){if("#"!=n[d])break;c=t}}if(c>l){var u=e.getLine(c).length;return new r(l,a,c,u)}}},this.getFoldWidgetRange=function(e,t,o){var n=this.indentationBlock(e,o);return n||((n=this.commentBlock(e,o))||void 0)},this.getFoldWidget=function(e,t,o){var n=e.getLine(o),i=n.search(/\S/),r=e.getLine(o+1),a=e.getLine(o-1),s=a.search(/\S/),l=r.search(/\S/);if(-1==i)return e.foldWidgets[o-1]=-1!=s&&s<l?"start":"","";if(-1==s){if(i==l&&"#"==n[i]&&"#"==r[i])return e.foldWidgets[o-1]="",e.foldWidgets[o+1]="","start"}else if(s==i&&"#"==n[i]&&"#"==a[i]&&-1==e.getLine(o-2).search(/\S/))return e.foldWidgets[o-1]="start",e.foldWidgets[o+1]="","";return e.foldWidgets[o-1]=-1!=s&&s<i?"start":"",i<l?"start":""}}.call(a.prototype)})),ace.define("ace/mode/pascal",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/pascal_highlight_rules","ace/mode/folding/coffee"],(function(e,t,o){"use strict";var n=e("../lib/oop"),i=e("./text").Mode,r=e("./pascal_highlight_rules").PascalHighlightRules,a=e("./folding/coffee").FoldMode,s=function(){this.HighlightRules=r,this.foldingRules=new a,this.$behaviour=this.$defaultBehaviour};n.inherits(s,i),function(){this.lineCommentStart=["--","//"],this.blockComment=[{start:"(*",end:"*)"},{start:"{",end:"}"}],this.$id="ace/mode/pascal"}.call(s.prototype),t.Mode=s})),ace.require(["ace/mode/pascal"],(function(e){"object"==typeof module&&"object"==typeof exports&&module&&(module.exports=e)}));