Current File : /home/pacjaorg/public_html/kmm/media/vendor/codemirror/mode/haskell/haskell.min.js |
(function(a){typeof exports=="object"&&typeof module=="object"?a(require("../../lib/codemirror")):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)})(function(a){"use strict";a.defineMode("haskell",function(R,g){function f(e,n,t){return n(t),t(e,n)}var v=/[a-z_]/,w=/[A-Z]/,u=/\d/,E=/[0-9A-Fa-f]/,b=/[0-7]/,m=/[a-z_A-Z0-9'\xa1-\uffff]/,d=/[-!#$%&*+.\/<=>?@\\^|~:]/,x=/[(),;[\]`{}]/,h=/[ \t\v\f]/;function l(e,n){if(e.eatWhile(h))return null;var t=e.next();if(x.test(t)){if(t=="{"&&e.eat("-")){var r="comment";return e.eat("#")&&(r="meta"),f(e,n,s(r,1))}return null}if(t=="'")return e.eat("\\"),e.next(),e.eat("'")?"string":"string error";if(t=='"')return f(e,n,p);if(w.test(t))return e.eatWhile(m),e.eat(".")?"qualifier":"variable-2";if(v.test(t))return e.eatWhile(m),"variable";if(u.test(t)){if(t=="0"){if(e.eat(/[xX]/))return e.eatWhile(E),"integer";if(e.eat(/[oO]/))return e.eatWhile(b),"number"}e.eatWhile(u);var r="number";return e.match(/^\.\d+/)&&(r="number"),e.eat(/[eE]/)&&(r="number",e.eat(/[-+]/),e.eatWhile(u)),r}if(t=="."&&e.eat("."))return"keyword";if(d.test(t)){if(t=="-"&&e.eat(/-/)&&(e.eatWhile(/-/),!e.eat(d)))return e.skipToEnd(),"comment";var r="variable";return t==":"&&(r="variable-2"),e.eatWhile(d),r}return"error"}function s(e,n){return n==0?l:function(t,r){for(var i=n;!t.eol();){var o=t.next();if(o=="{"&&t.eat("-"))++i;else if(o=="-"&&t.eat("}")&&(--i,i==0))return r(l),e}return r(s(e,i)),e}}function p(e,n){for(;!e.eol();){var t=e.next();if(t=='"')return n(l),"string";if(t=="\\"){if(e.eol()||e.eat(h))return n(F),"string";e.eat("&")||e.next()}}return n(l),"string error"}function F(e,n){return e.eat("\\")?f(e,n,p):(e.next(),n(l),"error")}var c=function(){var e={};function n(i){return function(){for(var o=0;o<arguments.length;o++)e[arguments[o]]=i}}n("keyword")("case","class","data","default","deriving","do","else","foreign","if","import","in","infix","infixl","infixr","instance","let","module","newtype","of","then","type","where","_"),n("keyword")("..",":","::","=","\\","<-","->","@","~","=>"),n("builtin")("!!","$!","$","&&","+","++","-",".","/","/=","<","<*","<=","<$>","<*>","=<<","==",">",">=",">>",">>=","^","^^","||","*","*>","**"),n("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"),n("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 t=g.overrideKeywords;if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}();return{startState:function(){return{f:l}},copyState:function(e){return{f:e.f}},token:function(e,n){var t=n.f(e,function(i){n.f=i}),r=e.current();return c.hasOwnProperty(r)?c[r]:t},blockCommentStart:"{-",blockCommentEnd:"-}",lineComment:"--"}}),a.defineMIME("text/x-haskell","haskell")});