var e={},t=/({)?([a-z][a-z0-9_]*)?((::[a-z][a-z0-9_]*)*::)?[a-zA-Z0-9_]+(})?/;function n(t,n){for(var r=n.split(` `),i=0;i.*/,!1),s=n.match(/(\s+)?[\w:_]+(\s+)?{/,!1),c=n.match(/(\s+)?[@]{1,2}[\w:_]+(\s+)?{/,!1),l=n.next();if(l===`$`)return n.match(t)?i.continueString?`variableName.special`:`variable`:`error`;if(i.continueString)return n.backUp(1),r(n,i);if(i.inDefinition){if(n.match(/(\s+)?[\w:_]+(\s+)?/))return`def`;n.match(/\s+{/),i.inDefinition=!1}return i.inInclude?(n.match(/(\s+)?\S+(\s+)?/),i.inInclude=!1,`def`):n.match(/(\s+)?\w+\(/)?(n.backUp(1),`def`):o?(n.match(/(\s+)?\w+/),`tag`):a&&e.hasOwnProperty(a)?(n.backUp(1),n.match(/[\w]+/),n.match(/\s+\S+\s+{/,!1)&&(i.inDefinition=!0),a==`include`&&(i.inInclude=!0),e[a]):/(^|\s+)[A-Z][\w:_]+/.test(a)?(n.backUp(1),n.match(/(^|\s+)[A-Z][\w:_]+/),`def`):s?(n.match(/(\s+)?[\w:_]+/),`def`):c?(n.match(/(\s+)?[@]{1,2}/),`atom`):l==`#`?(n.skipToEnd(),`comment`):l==`'`||l==`"`?(i.pending=l,r(n,i)):l==`{`||l==`}`?`bracket`:l==`/`?(n.match(/^[^\/]*\//),`string.special`):l.match(/[0-9]/)?(n.eatWhile(/[0-9]+/),`number`):l==`=`?(n.peek()==`>`&&n.next(),`operator`):(n.eatWhile(/[\w-]/),null)}var a={name:`puppet`,startState:function(){var e={};return e.inDefinition=!1,e.inInclude=!1,e.continueString=!1,e.pending=!1,e},token:function(e,t){return e.eatSpace()?null:i(e,t)}};export{a as puppet};