// This is a TextMate grammar distributed by `starry-night`. // This grammar is developed at // // and licensed permissive. // See for more info. /** * @import {Grammar} from '@wooorm/starry-night' */ /** @type {Grammar} */ const grammar = { dependencies: ['source.raku'], extensions: [], names: [], patterns: [ { begin: '(?x) (?<=^|[\\[\\]\\s\\(\\){},;]) (Q(?:x|w|ww|v|s|a|h|f|c|b|p)?) ((?: \\s*:(?: x|exec|w|words|ww|quotewords|v|val|q|single|double| s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash| regexp|substr|trans|codes|p|path|nfkc|nfkd ) )*) \\s*(\\(\\(\\()', beginCaptures: { 1: {name: 'string.quoted.q.operator.raku'}, 2: {name: 'support.function.quote.adverb.raku'}, 3: {name: 'punctuation.definition.string.raku'} }, contentName: 'string.quoted.q.triple_paren.quote.raku', end: '\\)\\)\\)', endCaptures: {0: {name: 'punctuation.definition.string.raku'}}, patterns: [{include: '#q_triple_paren_string_content'}] }, { begin: '(?x) (?<=^|[\\[\\]\\s\\(\\){},;]) (q(?:x|w|ww|v|s|a|h|f|c|b|p)?) ((?: \\s*:(?: x|exec|w|words|ww|quotewords|v|val|q|single|double| s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash| regexp|substr|trans|codes|p|path|nfkc|nfkd ) )*) \\s*(\\(\\(\\()', beginCaptures: { 1: {name: 'string.quoted.q.operator.raku'}, 2: {name: 'support.function.quote.adverb.raku'}, 3: {name: 'punctuation.definition.string.raku'} }, contentName: 'string.quoted.q.triple_paren.quote.raku', end: '\\\\\\\\\\)\\)\\)|(?>>', endCaptures: {0: {name: 'punctuation.definition.string.raku'}}, patterns: [{include: '#q_triple_angle_string_content'}] }, { begin: '(?x) (?<=^|[\\[\\]\\s\\(\\){},;]) (q(?:x|w|ww|v|s|a|h|f|c|b|p)?) ((?: \\s*:(?: x|exec|w|words|ww|quotewords|v|val|q|single|double| s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash| regexp|substr|trans|codes|p|path|nfkc|nfkd ) )*) \\s*(<<<)', beginCaptures: { 1: {name: 'string.quoted.q.operator.raku'}, 2: {name: 'support.function.quote.adverb.raku'}, 3: {name: 'punctuation.definition.string.raku'} }, contentName: 'string.quoted.q.triple_angle.quote.raku', end: '\\\\\\\\>>>|(?>>', endCaptures: {0: {name: 'punctuation.definition.string.raku'}}, patterns: [ {match: '\\\\<<<|\\\\>>>', name: 'constant.character.escape.raku'}, {include: '#q_triple_angle_string_content'} ] }, { begin: '(?x) (?<=^|[\\[\\]\\s\\(\\){},;]) (qq(?:x|w|ww|v|s|a|h|f|c|b|p)?) ((?: \\s*:(?: x|exec|w|words|ww|quotewords|v|val|q|single|double| s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash| regexp|substr|trans|codes|p|path|nfkc|nfkd ) )*) \\s*(<<<)', beginCaptures: { 1: {name: 'string.quoted.qq.operator.raku'}, 2: {name: 'support.function.quote.adverb.raku'}, 3: {name: 'punctuation.definition.string.raku'} }, contentName: 'string.quoted.qq.triple_angle.quote.raku', end: '\\\\\\\\>>>|(?>>', endCaptures: {0: {name: 'punctuation.definition.string.raku'}}, patterns: [ {match: '\\\\<<<|\\\\>>>', name: 'constant.character.escape.raku'}, {include: '#qq_character_escape'}, {include: 'source.raku#interpolation'}, {include: '#q_triple_angle_string_content'} ] }, { begin: '(?x) (?<=^|[\\[\\]\\s\\(\\){},;]) (Q(?:x|w|ww|v|s|a|h|f|c|b|p)?) ((?: \\s*:(?: x|exec|w|words|ww|quotewords|v|val|q|single|double| s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash| regexp|substr|trans|codes|p|path|nfkc|nfkd ) )*) \\s*(<<)', beginCaptures: { 1: {name: 'string.quoted.q.operator.raku'}, 2: {name: 'support.function.quote.adverb.raku'}, 3: {name: 'punctuation.definition.string.raku'} }, contentName: 'string.quoted.q.double_angle.quote.raku', end: '>>', endCaptures: {0: {name: 'punctuation.definition.string.raku'}}, patterns: [{include: '#q_double_angle_string_content'}] }, { begin: '(?x) (?<=^|[\\[\\]\\s\\(\\){},;]) (q(?:x|w|ww|v|s|a|h|f|c|b|p)?) ((?: \\s*:(?: x|exec|w|words|ww|quotewords|v|val|q|single|double| s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash| regexp|substr|trans|codes|p|path|nfkc|nfkd ) )*) \\s*(<<)', beginCaptures: { 1: {name: 'string.quoted.q.operator.raku'}, 2: {name: 'support.function.quote.adverb.raku'}, 3: {name: 'punctuation.definition.string.raku'} }, contentName: 'string.quoted.q.double_angle.quote.raku', end: '\\\\\\\\>>|(?>', endCaptures: {0: {name: 'punctuation.definition.string.raku'}}, patterns: [ {match: '\\\\<<|\\\\>>', name: 'constant.character.escape.raku'}, {include: '#q_double_angle_string_content'} ] }, { begin: '(?x) (?<=^|[\\[\\]\\s\\(\\){},;]) (qq(?:x|w|ww|v|s|a|h|f|c|b|p)?) ((?: \\s*:(?: x|exec|w|words|ww|quotewords|v|val|q|single|double| s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash| regexp|substr|trans|codes|p|path|nfkc|nfkd ) )*) \\s*(<<)', beginCaptures: { 1: {name: 'string.quoted.qq.operator.raku'}, 2: {name: 'support.function.quote.adverb.raku'}, 3: {name: 'punctuation.definition.string.raku'} }, contentName: 'string.quoted.qq.double_angle.quote.raku', end: '\\\\\\\\>>|(?>', endCaptures: {0: {name: 'punctuation.definition.string.raku'}}, patterns: [ {match: '\\\\<<|\\\\>>', name: 'constant.character.escape.raku'}, {include: '#qq_character_escape'}, {include: 'source.raku#interpolation'}, {include: '#q_double_angle_string_content'} ] }, { begin: '(?x) (?<=^|[\\[\\]\\s\\(\\){},;]) (Q(?:x|w|ww|v|s|a|h|f|c|b|p)?) ((?: \\s*:(?: x|exec|w|words|ww|quotewords|v|val|q|single|double| s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash| regexp|substr|trans|codes|p|path|nfkc|nfkd ) )*) \\s*(\\(\\()', beginCaptures: { 1: {name: 'string.quoted.q.operator.raku'}, 2: {name: 'support.function.quote.adverb.raku'}, 3: {name: 'punctuation.definition.string.raku'} }, contentName: 'string.quoted.q.double_paren.quote.raku', end: '\\)\\)', endCaptures: {0: {name: 'punctuation.definition.string.raku'}}, patterns: [{include: '#q_double_paren_string_content'}] }, { begin: '(?x) (?<=^|[\\[\\]\\s\\(\\){},;]) (q(?:x|w|ww|v|s|a|h|f|c|b|p)?) ((?: \\s*:(?: x|exec|w|words|ww|quotewords|v|val|q|single|double| s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash| regexp|substr|trans|codes|p|path|nfkc|nfkd ) )*) \\s*(\\(\\()', beginCaptures: { 1: {name: 'string.quoted.q.operator.raku'}, 2: {name: 'support.function.quote.adverb.raku'}, 3: {name: 'punctuation.definition.string.raku'} }, contentName: 'string.quoted.q.double_paren.quote.raku', end: '\\\\\\\\\\)\\)|(?', endCaptures: {0: {name: 'punctuation.definition.string.raku'}}, patterns: [{include: '#q_angle_string_content'}] }, { begin: '(?x) (?<=^|[\\[\\]\\s\\(\\){},;]) (q(?:x|w|ww|v|s|a|h|f|c|b|p)?) ((?: \\s*:(?: x|exec|w|words|ww|quotewords|v|val|q|single|double| s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash| regexp|substr|trans|codes|p|path|nfkc|nfkd ) )*) \\s*(<)', beginCaptures: { 1: {name: 'string.quoted.q.operator.raku'}, 2: {name: 'support.function.quote.adverb.raku'}, 3: {name: 'punctuation.definition.string.raku'} }, contentName: 'string.quoted.q.angle.quote.raku', end: '\\\\\\\\>|(?', endCaptures: {0: {name: 'punctuation.definition.string.raku'}}, patterns: [ {match: '\\\\<|\\\\>', name: 'constant.character.escape.raku'}, {include: '#q_angle_string_content'} ] }, { begin: '(?x) (?<=^|[\\[\\]\\s\\(\\){},;]) (qq(?:x|w|ww|v|s|a|h|f|c|b|p)?) ((?: \\s*:(?: x|exec|w|words|ww|quotewords|v|val|q|single|double| s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash| regexp|substr|trans|codes|p|path|nfkc|nfkd ) )*) \\s*(<)', beginCaptures: { 1: {name: 'string.quoted.qq.operator.raku'}, 2: {name: 'support.function.quote.adverb.raku'}, 3: {name: 'punctuation.definition.string.raku'} }, contentName: 'string.quoted.qq.angle.quote.raku', end: '\\\\\\\\>|(?', endCaptures: {0: {name: 'punctuation.definition.string.raku'}}, patterns: [ {match: '\\\\<|\\\\>', name: 'constant.character.escape.raku'}, {include: '#qq_character_escape'}, {include: 'source.raku#interpolation'}, {include: '#q_angle_string_content'} ] }, { begin: '(?x) (?<=^|[\\[\\]\\s\\(\\){},;]) (Q(?:x|w|ww|v|s|a|h|f|c|b|p)?) ((?: \\s*:(?: x|exec|w|words|ww|quotewords|v|val|q|single|double| s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash| regexp|substr|trans|codes|p|path|nfkc|nfkd ) )*) \\s+(\\()', beginCaptures: { 1: {name: 'string.quoted.q.operator.raku'}, 2: {name: 'support.function.quote.adverb.raku'}, 3: {name: 'punctuation.definition.string.raku'} }, contentName: 'string.quoted.q.paren.quote.raku', end: '\\)', endCaptures: {0: {name: 'punctuation.definition.string.raku'}}, patterns: [{include: '#q_paren_string_content'}] }, { begin: '(?x) (?<=^|[\\[\\]\\s\\(\\){},;]) (q(?:x|w|ww|v|s|a|h|f|c|b|p)?) ((?: \\s*:(?: x|exec|w|words|ww|quotewords|v|val|q|single|double| s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash| regexp|substr|trans|codes|p|path|nfkc|nfkd ) )*) \\s+(\\()', beginCaptures: { 1: {name: 'string.quoted.q.operator.raku'}, 2: {name: 'support.function.quote.adverb.raku'}, 3: {name: 'punctuation.definition.string.raku'} }, contentName: 'string.quoted.q.paren.quote.raku', end: '\\\\\\\\\\)|(?|(?', patterns: [{include: '#q_angle_string_content'}] }, q_brace_string_content: { begin: '{', end: '\\\\\\\\}|(?>|(?>', patterns: [{include: '#q_double_angle_string_content'}] }, q_double_brace_string_content: { begin: '{{', end: '\\\\\\\\}}|(?>>|(?>>', patterns: [{include: '#q_triple_angle_string_content'}] }, q_triple_brace_string_content: { begin: '\\{\\{\\{', end: '\\\\\\\\\\}\\}\\}|(?