import{g as y}from"./emoji-picker-KVqjnXYv.chunk.mjs";function O(n,s){for(var r=0;r<s.length;r++){const a=s[r];if(typeof a!="string"&&!Array.isArray(a)){for(const i in a)if(i!=="default"&&!(i in n)){const t=Object.getOwnPropertyDescriptor(a,i);t&&Object.defineProperty(n,i,t.get?t:{enumerable:!0,get:()=>a[i]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}function A(n){const s="(_?[ui](8|16|32|64|128))?",r="(_?f(32|64))?",a="[a-zA-Z_]\\w*[!?=]?",i="[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\*\\*|\\[\\][=?]?",t="[A-Za-z_]\\w*(::\\w+)*(\\?|!)?",o={$pattern:a,keyword:"abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield __DIR__ __END_LINE__ __FILE__ __LINE__",literal:"false nil true"},c={className:"subst",begin:/#\{/,end:/\}/,keywords:o},u={className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},g={className:"template-variable",variants:[{begin:"\\{\\{",end:"\\}\\}"},{begin:"\\{%",end:"%\\}"}],keywords:o};function e(N,v){const b=[{begin:N,end:v}];return b[0].contains=b,b}const d={className:"string",contains:[n.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[Qwi]?\\(",end:"\\)",contains:e("\\(","\\)")},{begin:"%[Qwi]?\\[",end:"\\]",contains:e("\\[","\\]")},{begin:"%[Qwi]?\\{",end:/\}/,contains:e(/\{/,/\}/)},{begin:"%[Qwi]?<",end:">",contains:e("<",">")},{begin:"%[Qwi]?\\|",end:"\\|"},{begin:/<<-\w+$/,end:/^\s*\w+$/}],relevance:0},E={className:"string",variants:[{begin:"%q\\(",end:"\\)",contains:e("\\(","\\)")},{begin:"%q\\[",end:"\\]",contains:e("\\[","\\]")},{begin:"%q\\{",end:/\}/,contains:e(/\{/,/\}/)},{begin:"%q<",end:">",contains:e("<",">")},{begin:"%q\\|",end:"\\|"},{begin:/<<-'\w+'$/,end:/^\s*\w+$/}],relevance:0},f={begin:"(?!%\\})("+n.RE_STARTERS_RE+"|\\n|\\b(case|if|select|unless|until|when|while)\\b)\\s*",keywords:"case if select unless until when while",contains:[{className:"regexp",contains:[n.BACKSLASH_ESCAPE,c],variants:[{begin:"//[a-z]*",relevance:0},{begin:"/(?!\\/)",end:"/[a-z]*"}]}],relevance:0},m={className:"regexp",contains:[n.BACKSLASH_ESCAPE,c],variants:[{begin:"%r\\(",end:"\\)",contains:e("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:e("\\[","\\]")},{begin:"%r\\{",end:/\}/,contains:e(/\{/,/\}/)},{begin:"%r<",end:">",contains:e("<",">")},{begin:"%r\\|",end:"\\|"}],relevance:0},w={className:"meta",begin:"@\\[",end:"\\]",contains:[n.inherit(n.QUOTE_STRING_MODE,{className:"string"})]},l=[g,d,E,m,f,w,u,n.HASH_COMMENT_MODE,{className:"class",beginKeywords:"class module struct",end:"$|;",illegal:/=/,contains:[n.HASH_COMMENT_MODE,n.inherit(n.TITLE_MODE,{begin:t}),{begin:"<"}]},{className:"class",beginKeywords:"lib enum union",end:"$|;",illegal:/=/,contains:[n.HASH_COMMENT_MODE,n.inherit(n.TITLE_MODE,{begin:t})]},{beginKeywords:"annotation",end:"$|;",illegal:/=/,contains:[n.HASH_COMMENT_MODE,n.inherit(n.TITLE_MODE,{begin:t})],relevance:2},{className:"function",beginKeywords:"def",end:/\B\b/,contains:[n.inherit(n.TITLE_MODE,{begin:i,endsParent:!0})]},{className:"function",beginKeywords:"fun macro",end:/\B\b/,contains:[n.inherit(n.TITLE_MODE,{begin:i,endsParent:!0})],relevance:2},{className:"symbol",begin:n.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[d,{begin:i}],relevance:0},{className:"number",variants:[{begin:"\\b0b([01_]+)"+s},{begin:"\\b0o([0-7_]+)"+s},{begin:"\\b0x([A-Fa-f0-9_]+)"+s},{begin:"\\b([1-9][0-9_]*[0-9]|[0-9])(\\.[0-9][0-9_]*)?([eE]_?[-+]?[0-9_]*)?"+r+"(?!_)"},{begin:"\\b([1-9][0-9_]*|0)"+s}],relevance:0}];return c.contains=l,g.contains=l.slice(1),{name:"Crystal",aliases:["cr"],keywords:o,contains:l}}var _=A;const T=y(_),S=O({__proto__:null,default:T},[_]);export{_ as a,S as c};
//# sourceMappingURL=crystal-xYIZ8Pqe.chunk.mjs.map
