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("haskell",function(a,b){function c(a,b,c){b(c);return c(a,b)}var d=/[a-z_]/;var e=/[A-Z]/;var f=/\d/;var g=/[0-9A-Fa-f]/;var h=/[0-7]/;var i=/[a-z_A-Z0-9'\xa1-\uffff]/;var j=/[-!#$%&*+.\/<=>?@\\^|~:]/;var k=/[(),;[\]`{}]/;var l=/[ \t\v\f]/;function m(a,b){if(a.eatWhile(l)){return null}var m=a.next();if(k.test(m)){if(m=="{"&&a.eat("-")){var p="comment";if(a.eat("#")){p="meta"}return c(a,b,n(p,1))}return null}if(m=="'"){if(a.eat("\\")){a.next()}else{a.next()}if(a.eat("'")){return"string"}return"string error"}if(m=='"'){return c(a,b,o)}if(e.test(m)){a.eatWhile(i);if(a.eat(".")){return"qualifier"}return"variable-2"}if(d.test(m)){a.eatWhile(i);return"variable"}if(f.test(m)){if(m=="0"){if(a.eat(/[xX]/)){a.eatWhile(g);return"integer"}if(a.eat(/[oO]/)){a.eatWhile(h);return"number"}}a.eatWhile(f);var p="number";if(a.match(/^\.\d+/)){p="number"}if(a.eat(/[eE]/)){p="number";a.eat(/[-+]/);a.eatWhile(f)}return p}if(m=="."&&a.eat("."))return"keyword";if(j.test(m)){if(m=="-"&&a.eat(/-/)){a.eatWhile(/-/);if(!a.eat(j)){a.skipToEnd();return"comment"}}var p="variable";if(m==":"){p="variable-2"}a.eatWhile(j);return p}return"error"}function n(a,b){if(b==0){return m}return function(c,d){var e=b;while(!c.eol()){var f=c.next();if(f=="{"&&c.eat("-")){++e}else if(f=="-"&&c.eat("}")){--e;if(e==0){d(m);return a}}}d(n(a,e));return a}}function o(a,b){while(!a.eol()){var c=a.next();if(c=='"'){b(m);return"string"}if(c=="\\"){if(a.eol()||a.eat(l)){b(p);return"string"}if(a.eat("&")){}else{a.next()}}}b(m);return"string error"}function p(a,b){if(a.eat("\\")){return c(a,b,o)}a.next();b(m);return"error"}var q=function(){var a={};function c(b){return function(){for(var c=0;c<arguments.length;c++)a[arguments[c]]=b}}c("keyword")("case","class","data","default","deriving","do","else","foreign","if","import","in","infix","infixl","infixr","instance","let","module","newtype","of","then","type","where","_");c("keyword")("..",":","::","=","\\","<-","->","@","~","=>");c("builtin")("!!","$!","$","&&","+","++","-",".","/","/=","<","<*","<=","<$>","<*>","=<<","==",">",">=",">>",">>=","^","^^","||","*","*>","**");c("builtin")("Applicative","Bool","Bounded","Char","Double","EQ","Either","Enum","Eq","False","FilePath","Float","Floating","Fractional","Functor","GT","IO","IOError","Int","Integer","Integral","Just","LT","Left","Maybe","Monad","Nothing","Num","Ord","Ordering","Rational","Read","ReadS","Real","RealFloat","RealFrac","Right","Show","ShowS","String","True");c("builtin")("abs","acos","acosh","all","and","any","appendFile","asTypeOf","asin","asinh","atan","atan2","atanh","break","catch","ceiling","compare","concat","concatMap","const","cos","cosh","curry","cycle","decodeFloat","div","divMod","drop","dropWhile","either","elem","encodeFloat","enumFrom","enumFromThen","enumFromThenTo","enumFromTo","error","even","exp","exponent","fail","filter","flip","floatDigits","floatRadix","floatRange","floor","fmap","foldl","foldl1","foldr","foldr1","fromEnum","fromInteger","fromIntegral","fromRational","fst","gcd","getChar","getContents","getLine","head","id","init","interact","ioError","isDenormalized","isIEEE","isInfinite","isNaN","isNegativeZero","iterate","last","lcm","length","lex","lines","log","logBase","lookup","map","mapM","mapM_","max","maxBound","maximum","maybe","min","minBound","minimum","mod","negate","not","notElem","null","odd","or","otherwise","pi","pred","print","product","properFraction","pure","putChar","putStr","putStrLn","quot","quotRem","read","readFile","readIO","readList","readLn","readParen","reads","readsPrec","realToFrac","recip","rem","repeat","replicate","return","reverse","round","scaleFloat","scanl","scanl1","scanr","scanr1","seq","sequence","sequence_","show","showChar","showList","showParen","showString","shows","showsPrec","significand","signum","sin","sinh","snd","span","splitAt","sqrt","subtract","succ","sum","tail","take","takeWhile","tan","tanh","toEnum","toInteger","toRational","truncate","uncurry","undefined","unlines","until","unwords","unzip","unzip3","userError","words","writeFile","zip","zip3","zipWith","zipWith3");var d=b.overrideKeywords;if(d)for(var e in d)if(d.hasOwnProperty(e))a[e]=d[e];return a}();return{startState:function(){return{f:m}},copyState:function(a){return{f:a.f}},token:function(a,b){var c=b.f(a,function(a){b.f=a});var d=a.current();return q.hasOwnProperty(d)?q[d]:c},blockCommentStart:"{-",blockCommentEnd:"-}",lineComment:"--"}});a.defineMIME("text/x-haskell","haskell")});
2//# sourceMappingURL=haskell.min.js.map