!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("puppet",(function(){var e={},n=/({)?([a-z][a-z0-9_]*)?((::[a-z][a-z0-9_]*)*::)?[a-zA-Z0-9_]+(})?/;function t(n,t){for(var i=t.split(" "),o=0;o.*/,!1),s=t.match(/(\s+)?[\w:_]+(\s+)?{/,!1),c=t.match(/(\s+)?[@]{1,2}[\w:_]+(\s+)?{/,!1),u=t.next();if("$"===u)return t.match(n)?o.continueString?"variable-2":"variable":"error";if(o.continueString)return t.backUp(1),i(t,o);if(o.inDefinition){if(t.match(/(\s+)?[\w:_]+(\s+)?/))return"def";t.match(/\s+{/),o.inDefinition=!1}return o.inInclude?(t.match(/(\s+)?\S+(\s+)?/),o.inInclude=!1,"def"):t.match(/(\s+)?\w+\(/)?(t.backUp(1),"def"):r?(t.match(/(\s+)?\w+/),"tag"):a&&e.hasOwnProperty(a)?(t.backUp(1),t.match(/[\w]+/),t.match(/\s+\S+\s+{/,!1)&&(o.inDefinition=!0),"include"==a&&(o.inInclude=!0),e[a]):/(^|\s+)[A-Z][\w:_]+/.test(a)?(t.backUp(1),t.match(/(^|\s+)[A-Z][\w:_]+/),"def"):s?(t.match(/(\s+)?[\w:_]+/),"def"):c?(t.match(/(\s+)?[@]{1,2}/),"special"):"#"==u?(t.skipToEnd(),"comment"):"'"==u||'"'==u?(o.pending=u,i(t,o)):"{"==u||"}"==u?"bracket":"/"==u?(t.match(/^[^\/]*\//),"variable-3"):u.match(/[0-9]/)?(t.eatWhile(/[0-9]+/),"number"):"="==u?(">"==t.peek()&&t.next(),"operator"):(t.eatWhile(/[\w-]/),null)}(t,o)}}})),e.defineMIME("text/x-puppet","puppet")}));