1(function(a){if(typeof exports=="object"&&typeof module=="object")a(require("../../lib/codemirror"));else if(typeof define=="function"&&define.amd)define(["../../lib/codemirror"],a);else a(CodeMirror)})(function(a){"use strict";a.defineMode("oz",function(a){function b(a){return new RegExp("^(("+a.join(")|(")+"))\\b")}var c=/[\^@!\|<>#~\.\*\-\+\\\/,=]/;var d=/(<-)|(:=)|(=<)|(>=)|(<=)|(<:)|(>:)|(=:)|(\\=)|(\\=:)|(!!)|(==)|(::)/;var e=/(:::)|(\.\.\.)|(=<:)|(>=:)/;var f=["in","then","else","of","elseof","elsecase","elseif","catch","finally","with","require","prepare","import","export","define","do"];var g=["end"];var h=b(["true","false","nil","unit"]);var i=b(["andthen","at","attr","declare","feat","from","lex","mod","div","mode","orelse","parser","prod","prop","scanner","self","syn","token"]);var j=b(["local","proc","fun","case","class","if","cond","or","dis","choice","not","thread","try","raise","lock","for","suchthat","meth","functor"]);var k=b(f);var l=b(g);function m(a,b){if(a.eatSpace()){return null}if(a.match(/[{}]/)){return"bracket"}if(a.match(/(\[])/)){return"keyword"}if(a.match(e)||a.match(d)){return"operator"}if(a.match(h)){return"atom"}var f=a.match(j);if(f){if(!b.doInCurrentLine)b.currentIndent++;else b.doInCurrentLine=false;if(f[0]=="proc"||f[0]=="fun")b.tokenize=p;else if(f[0]=="class")b.tokenize=n;else if(f[0]=="meth")b.tokenize=o;return"keyword"}if(a.match(k)||a.match(i)){return"keyword"}if(a.match(l)){b.currentIndent--;return"keyword"}var g=a.next();if(g=='"'||g=="'"){b.tokenize=r(g);return b.tokenize(a,b)}if(/[~\d]/.test(g)){if(g=="~"){if(!/^[0-9]/.test(a.peek()))return null;else if(a.next()=="0"&&a.match(/^[xX][0-9a-fA-F]+/)||a.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/))return"number"}if(g=="0"&&a.match(/^[xX][0-9a-fA-F]+/)||a.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/))return"number";return null}if(g=="%"){a.skipToEnd();return"comment"}else if(g=="/"){if(a.eat("*")){b.tokenize=q;return q(a,b)}}if(c.test(g)){return"operator"}a.eatWhile(/\w/);return"variable"}function n(a,b){if(a.eatSpace()){return null}a.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)/);b.tokenize=m;return"variable-3"}function o(a,b){if(a.eatSpace()){return null}a.match(/([a-zA-Z][A-Za-z0-9_]*)|(`.+`)/);b.tokenize=m;return"def"}function p(a,b){if(a.eatSpace()){return null}if(!b.hasPassedFirstStage&&a.eat("{")){b.hasPassedFirstStage=true;return"bracket"}else if(b.hasPassedFirstStage){a.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)|\$/);b.hasPassedFirstStage=false;b.tokenize=m;return"def"}else{b.tokenize=m;return null}}function q(a,b){var c=false,d;while(d=a.next()){if(d=="/"&&c){b.tokenize=m;break}c=d=="*"}return"comment"}function r(a){return function(b,c){var d=false,e,f=false;while((e=b.next())!=null){if(e==a&&!d){f=true;break}d=!d&&e=="\\"}if(f||!d)c.tokenize=m;return"string"}}function s(){var a=f.concat(g);return new RegExp("[\\[\\]]|("+a.join("|")+")$")}return{startState:function(){return{tokenize:m,currentIndent:0,doInCurrentLine:false,hasPassedFirstStage:false}},token:function(a,b){if(a.sol())b.doInCurrentLine=0;return b.tokenize(a,b)},indent:function(b,c){var d=c.replace(/^\s+|\s+$/g,"");if(d.match(l)||d.match(k)||d.match(/(\[])/))return a.indentUnit*(b.currentIndent-1);if(b.currentIndent<0)return 0;return b.currentIndent*a.indentUnit},fold:"indent",electricInput:s(),lineComment:"%",blockCommentStart:"/*",blockCommentEnd:"*/"}});a.defineMIME("text/x-oz","oz")});
2//# sourceMappingURL=oz.min.js.map