ace.define("ace/mode/logiql_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(r,e,m){"use strict";var o=r("../lib/oop");var T=r("./text_highlight_rules").TextHighlightRules;var L=function(){this.$rules={start:[{token:'comment.block',regex:'/\\*',push:[{token:'comment.block',regex:'\\*/',next:'pop'},{defaultToken:'comment.block'}]},{token:'comment.single',regex:'//.*'},{token:'constant.numeric',regex:'\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?[fd]?'},{token:'string',regex:'"',push:[{token:'string',regex:'"',next:'pop'},{defaultToken:'string'}]},{token:'constant.language',regex:'\\b(true|false)\\b'},{token:'entity.name.type.logicblox',regex:'`[a-zA-Z_:]+(\\d|\\a)*\\b'},{token:'keyword.start',regex:'->',comment:'Constraint'},{token:'keyword.start',regex:'-->',comment:'Level 1 Constraint'},{token:'keyword.start',regex:'<-',comment:'Rule'},{token:'keyword.start',regex:'<--',comment:'Level 1 Rule'},{token:'keyword.end',regex:'\\.',comment:'Terminator'},{token:'keyword.other',regex:'!',comment:'Negation'},{token:'keyword.other',regex:',',comment:'Conjunction'},{token:'keyword.other',regex:';',comment:'Disjunction'},{token:'keyword.operator',regex:'<=|>=|!=|<|>',comment:'Equality'},{token:'keyword.other',regex:'@',comment:'Equality'},{token:'keyword.operator',regex:'\\+|-|\\*|/',comment:'Arithmetic operations'},{token:'keyword',regex:'::',comment:'Colon colon'},{token:'support.function',regex:'\\b(agg\\s*<<)',push:[{include:'$self'},{token:'support.function',regex:'>>',next:'pop'}]},{token:'storage.modifier',regex:'\\b(lang:[\\w:]*)'},{token:['storage.type','text'],regex:'(export|sealed|clauses|block|alias|alias_all)(\\s*\\()(?=`)'},{token:'entity.name',regex:'[a-zA-Z_][a-zA-Z_0-9:]*(@prev|@init|@final)?(?=(\\(|\\[))'},{token:'variable.parameter',regex:'([a-zA-Z][a-zA-Z_0-9]*|_)\\s*(?=(,|\\.|<-|->|\\)|\\]|=))'}]};this.normalizeRules();};o.inherits(L,T);e.LogiQLHighlightRules=L;});ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(r,e,m){"use strict";var o=r("../../lib/oop");var B=r("./fold_mode").FoldMode;var R=r("../../range").Range;var F=e.FoldMode=function(){};o.inherits(F,B);(function(){this.getFoldWidgetRange=function(s,f,a){var b=this.indentationBlock(s,a);if(b)return b;var c=/\S/;var l=s.getLine(a);var d=l.search(c);if(d==-1||l[d]!="#")return;var g=l.length;var h=s.getLength();var i=a;var j=a;while(++ai){var n=s.getLine(j).length;return new R(i,g,j,n);}};this.getFoldWidget=function(s,f,a){var l=s.getLine(a);var i=l.search(/\S/);var n=s.getLine(a+1);var p=s.getLine(a-1);var b=p.search(/\S/);var c=n.search(/\S/);if(i==-1){s.foldWidgets[a-1]=b!=-1&&b|<--|<-|->|{)\s*$/.test(l))i+=t;return i;};this.checkOutdent=function(s,l,i){if(this.$outdent.checkOutdent(l,i))return true;if(i!=="\n"&&i!=="\r\n")return false;if(!/^\s+/.test(l))return false;return true;};this.autoOutdent=function(s,d,c){if(this.$outdent.autoOutdent(d,c))return;var p=d.getLine(c);var f=p.match(/^\s+/);var g=p.lastIndexOf(".")+1;if(!f||!c||!g)return 0;var l=d.getLine(c+1);var h=this.getMatching(d,{row:c,column:g});if(!h||h.start.row==c)return 0;g=f[0].length;var i=this.$getIndent(d.getLine(h.start.row));d.replace(new R(c+1,0,c+1,g),i);};this.getMatching=function(s,c,d){if(c==undefined)c=s.selection.lead;if(typeof c=="object"){d=c.column;c=c.row;}var f=s.getTokenAt(c,d);var K="keyword.start",g="keyword.end";var t;if(!f)return;if(f.type==K){var i=new a(s,c,d);i.step=i.stepForward;}else if(f.type==g){var i=new a(s,c,d);i.step=i.stepBackward;}else return;while(t=i.step()){if(t.type==K||t.type==g)break;}if(!t||t.type==f.type)return;var h=i.getCurrentTokenColumn();var c=i.getCurrentTokenRow();return new R(c,h,c,h+t.value.length);};this.$id="ace/mode/logiql";}).call(b.prototype);e.Mode=b;});