(Prism.languages.chaiscript = Prism.languages.extend('clike', { string: { pattern: /(^|[^\\])'(?:[^'\\]|\\[\s\S])*'/, lookbehind: !0, greedy: !0, }, 'class-name': [ { pattern: /(\bclass\s+)\w+/, lookbehind: !0 }, { pattern: /(\b(?:attr|def)\s+)\w+(?=\s*::)/, lookbehind: !0 }, ], keyword: /\b(?:attr|auto|break|case|catch|class|continue|def|default|else|finally|for|fun|global|if|return|switch|this|try|var|while)\b/, number: [Prism.languages.cpp.number, /\b(?:Infinity|NaN)\b/], operator: />>=?|<<=?|\|\||&&|:[:=]?|--|\+\+|[=!<>+\-*/%|&^]=?|[?~]|`[^`\r\n]{1,4}`/, })), Prism.languages.insertBefore('chaiscript', 'operator', { 'parameter-type': { pattern: /([,(]\s*)\w+(?=\s+\w)/, lookbehind: !0, alias: 'class-name', }, }), Prism.languages.insertBefore('chaiscript', 'string', { 'string-interpolation': { pattern: /(^|[^\\])"(?:[^"$\\]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*"/, lookbehind: !0, greedy: !0, inside: { interpolation: { pattern: /((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\}/, lookbehind: !0, inside: { 'interpolation-expression': { pattern: /(^\$\{)[\s\S]+(?=\}$)/, lookbehind: !0, inside: Prism.languages.chaiscript, }, 'interpolation-punctuation': { pattern: /^\$\{|\}$/, alias: 'punctuation', }, }, }, string: /[\s\S]+/, }, }, });