(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("pig",function(a,b){var c=b.keywords,d=b.builtins,e=b.types,f=b.multiLineStrings;var g=/[*+\-%<>=&?:\/!|]/;function h(a,b,c){b.tokenize=c;return c(a,b)}function i(a,b){var c=false;var d;while(d=a.next()){if(d=="/"&&c){b.tokenize=k;break}c=d=="*"}return"comment"}function j(a){return function(b,c){var d=false,e,g=false;while((e=b.next())!=null){if(e==a&&!d){g=true;break}d=!d&&e=="\\"}if(g||!(d||f))c.tokenize=k;return"error"}}function k(a,b){var f=a.next();if(f=='"'||f=="'")return h(a,b,j(f));else if(/[\[\]{}\(\),;\.]/.test(f))return null;else if(/\d/.test(f)){a.eatWhile(/[\w\.]/);return"number"}else if(f=="/"){if(a.eat("*")){return h(a,b,i)}else{a.eatWhile(g);return"operator"}}else if(f=="-"){if(a.eat("-")){a.skipToEnd();return"comment"}else{a.eatWhile(g);return"operator"}}else if(g.test(f)){a.eatWhile(g);return"operator"}else{a.eatWhile(/[\w\$_]/);if(c&&c.propertyIsEnumerable(a.current().toUpperCase())){if(!a.eat(")")&&!a.eat("."))return"keyword"}if(d&&d.propertyIsEnumerable(a.current().toUpperCase()))return"variable-2";if(e&&e.propertyIsEnumerable(a.current().toUpperCase()))return"variable-3";return"variable"}}return{startState:function(){return{tokenize:k,startOfLine:true}},token:function(a,b){if(a.eatSpace())return null;var c=b.tokenize(a,b);return c}}});(function(){function b(a){var b={},c=a.split(" ");for(var d=0;d