!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}((function(e){"use strict";e.defineMode("pascal",(function(){var e=function(e){for(var r={},t=e.split(" "),n=0;n!?|\/]/;function n(n,o){var l,c=n.next();if("#"==c&&o.startOfLine)return n.skipToEnd(),"meta";if('"'==c||"'"==c)return o.tokenize=(l=c,function(e,r){for(var t,n=!1,i=!1;null!=(t=e.next());){if(t==l&&!n){i=!0;break}n=!n&&"\\"==t}return!i&&n||(r.tokenize=null),"string"}),o.tokenize(n,o);if("("==c&&n.eat("*"))return o.tokenize=i,i(n,o);if("{"==c)return o.tokenize=a,a(n,o);if(/[\[\]\(\),;\:\.]/.test(c))return null;if(/\d/.test(c))return n.eatWhile(/[\w\.]/),"number";if("/"==c&&n.eat("/"))return n.skipToEnd(),"comment";if(t.test(c))return n.eatWhile(t),"operator";n.eatWhile(/[\w\$_]/);var u=n.current();return e.propertyIsEnumerable(u)?"keyword":r.propertyIsEnumerable(u)?"atom":"variable"}function i(e,r){for(var t,n=!1;t=e.next();){if(")"==t&&n){r.tokenize=null;break}n="*"==t}return"comment"}function a(e,r){for(var t;t=e.next();)if("}"==t){r.tokenize=null;break}return"comment"}return{startState:function(){return{tokenize:null}},token:function(e,r){if(e.eatSpace())return null;var t=(r.tokenize||n)(e,r);return t},electricChars:"{}"}})),e.defineMIME("text/x-pascal","pascal")}));