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<r.length;i++)e[r[i]]=t}n(`keyword`,`class define site node include import inherits`),n(`keyword`,`case if else in and elsif default or`),n(`atom`,`false true running present absent file directory undef`),n(`builtin`,`action augeas burst chain computer cron destination dport exec file filebucket group host icmp iniface interface jump k5login limit log_level log_prefix macauthorization mailalias maillist mcx mount nagios_command nagios_contact nagios_contactgroup nagios_host nagios_hostdependency nagios_hostescalation nagios_hostextinfo nagios_hostgroup nagios_service nagios_servicedependency nagios_serviceescalation nagios_serviceextinfo nagios_servicegroup nagios_timeperiod name notify outiface package proto reject resources router schedule scheduled_task selboolean selmodule service source sport ssh_authorized_key sshkey stage state table tidy todest toports tosource user vlan yumrepo zfs zone zpool`);function r(e,t){for(var n,r,i=!1;!e.eol()&&(n=e.next())!=t.pending;){if(n===`$`&&r!=`\\`&&t.pending==`"`){i=!0;break}r=n}return i&&e.backUp(1),n==t.pending?t.continueString=!1:t.continueString=!0,`string`}function i(n,i){var a=n.match(/[\w]+/,!1),o=n.match(/(\s+)?\w+\s+=>.*/,!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)}const 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};