{"name":"Lark","scopeName":"source.lark","patterns":[{"name":"comment.line.number-sign.shebang.lark","begin":"\\A#!","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.shebang.lark"}}},{"include":"#main"}],"repository":{"alias":{"name":"meta.alias.lark","match":"(-\u003e)\\s*((!?[_?]|!)?[a-zA-Z][_a-zA-Z0-9]*)?","captures":{"1":{"name":"storage.type.alias.lark"},"2":{"name":"entity.name.alias.lark"},"3":{"patterns":[{"include":"#name-prefix"}]}}},"comma":{"name":"punctuation.delimiter.separator.list.comma.lark","match":","},"comment":{"name":"comment.line.double-slash.lark","begin":"//","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.lark"}}},"definition":{"patterns":[{"name":"meta.definition.terminal.lark","begin":"^\\s*((!?[_?]|!)?[A-Z][_A-Z0-9]*)\\s*(\\.[-+.\\d]+\\s*)?(:)","end":"(?!\\G|^\\s*$)(?=^\\s*[^\\s|])","patterns":[{"include":"#definition-innards"}],"beginCaptures":{"1":{"name":"entity.name.terminal.lark"},"2":{"patterns":[{"include":"#name-prefix"}]},"3":{"patterns":[{"include":"#priority"}]},"4":{"name":"keyword.operator.assignment.lark"}}},{"name":"meta.definition.rule.lark","begin":"^\\s*((!?[_?]|!)?[a-z][_a-z0-9]*)\\s*(\\.[-+.\\d]+\\s*)?(:)","end":"(?!\\G|^\\s*$)(?=^\\s*[^\\s|])","patterns":[{"include":"#definition-innards"}],"beginCaptures":{"1":{"name":"entity.name.rule.lark"},"2":{"patterns":[{"include":"#name-prefix"}]},"3":{"patterns":[{"include":"#priority"}]},"4":{"name":"keyword.operator.assignment.lark"}}}]},"definition-innards":{"patterns":[{"include":"#groups"},{"include":"#alias"},{"include":"#operators"},{"include":"#comment"},{"include":"#string"},{"include":"#regexp"},{"include":"#flags"},{"include":"#range"},{"include":"#template-usage"},{"include":"#name"},{"include":"#comma"}]},"directives":{"patterns":[{"name":"meta.directive.import.lark","begin":"(?:^|\\G)\\s*((%)import)(?=\\s|$)","end":"$","patterns":[{"name":"meta.import-specification.lark","begin":"\\G\\s+(\\.?\\w+(?:\\.\\w+)*+)(?=\\s|$)[ \\t]*","end":"(?=$)","patterns":[{"include":"#alias"},{"include":"#name-list"},{"include":"#comment"}],"beginCaptures":{"0":{"name":"meta.module-reference.lark"},"1":{"name":"string.unquoted.module.import.lark","patterns":[{"include":"#dot"},{"include":"#name"}]}}},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.control.directive.import.lark"},"2":{"name":"punctuation.definition.directive.lark"}}},{"name":"meta.directive.$3.lark","begin":"(?:^|\\G)\\s*((%)(?!_)([A-Za-z_]+))(?=\\s|$)","end":"(?!\\G|^\\s*$)(?=^\\s*[^\\s|])","patterns":[{"include":"#definition-innards"}],"beginCaptures":{"1":{"name":"keyword.control.directive.$3.lark"},"2":{"name":"punctuation.definition.directive.lark"}}}]},"dot":{"name":"punctuation.delimiter.separator.period.dot.lark","match":"\\."},"flags":{"name":"storage.modifier.flags.lark","match":"(?\u003c=/|\")[imslux]+"},"groups":{"patterns":[{"name":"meta.group.lark","begin":"\\(","end":"\\)","patterns":[{"include":"#definition-innards"}],"beginCaptures":{"0":{"name":"punctuation.section.group.round.bracket.begin.lark"}},"endCaptures":{"0":{"name":"punctuation.section.group.round.bracket.end.lark"}}},{"name":"meta.group.lark","begin":"\\[","end":"\\]","patterns":[{"include":"#definition-innards"}],"beginCaptures":{"0":{"name":"punctuation.section.group.square.bracket.begin.lark"}},"endCaptures":{"0":{"name":"punctuation.section.group.square.bracket.end.lark"}}}]},"main":{"patterns":[{"include":"#comment"},{"include":"#template"},{"include":"#definition"},{"include":"#directives"}]},"name":{"name":"variable.definition.reference.lark","match":"(!?[_?]|!)?(?:[A-Z][_A-Z0-9]*|[a-z][_a-z0-9]*)","captures":{"1":{"patterns":[{"include":"#name-prefix"}]}}},"name-list":{"name":"meta.name-list.lark","begin":"\\G\\s*(\\()","end":"\\)","patterns":[{"include":"#name"},{"include":"#comma"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"punctuation.definition.name-list.round.bracket.begin.lark"}},"endCaptures":{"0":{"name":"punctuation.definition.name-list.round.bracket.end.lark"}}},"name-prefix":{"name":"storage.modifier.tree-shaping.lark","match":"(?:\\G|^)(!?[_?]|!)","captures":{"1":{"name":"punctuation.definition.name.lark"}}},"number":{"name":"constant.numeric.decimal.lark","match":"-?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?"},"operators":{"patterns":[{"name":"keyword.operator.logical.or.lark","match":"\\|"},{"name":"keyword.operator.quantifier.lark","match":"[+*?]"},{"name":"meta.exact-quantity.lark","match":"(~)\\s*(\\d+)(?:(\\.\\.)(\\d+))?","captures":{"1":{"name":"keyword.operator.quantifier.arbitrary.lark"},"2":{"patterns":[{"include":"#number"}]},"3":{"name":"punctuation.separator.range.quantities.lark"},"4":{"patterns":[{"include":"#number"}]}}}]},"priority":{"name":"meta.priority.lark","begin":"(?:\\G|^)\\.","end":"$|(?=:)","patterns":[{"include":"#number"}],"beginCaptures":{"0":{"patterns":[{"include":"#dot"}]}}},"range":{"name":"punctuation.separator.range.characters.lark","match":"(?\u003c=\")\\.\\."},"regexp":{"name":"string.regexp.lark","begin":"/(?!/)","end":"/","patterns":[{"include":"source.regexp.python"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.lark"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.lark"}}},"string":{"name":"string.quoted.double.lark","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.lark","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.lark"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.lark"}}},"template":{"name":"meta.definition.template.lark","begin":"^\\s*((!?[_?]|!)?\\w+)\\s*(?={.*?}\\s*:)","end":"(?!\\G|^\\s*$)(?=^\\s*[^\\s|])","patterns":[{"include":"#template-args"},{"include":"#definition-innards"}],"beginCaptures":{"1":{"name":"entity.name.template.function.lark"},"2":{"patterns":[{"include":"#name-prefix"}]}}},"template-args":{"name":"meta.function.parameters.lark","begin":"\\G\\s*({)","end":"(})(?:\\s*(:))?|(?=\\s*$)","patterns":[{"include":"#template-usage"},{"name":"variable.parameter.template.argument.lark","match":"\\w+"},{"include":"#definition-innards"}],"beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.lark"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.lark"},"2":{"name":"keyword.operator.assignment.lark"}}},"template-usage":{"name":"meta.function-call.lark","begin":"((!?[_?]|!)?\\w+)\\s*(?={)","end":"(?!\\G)","patterns":[{"include":"#template-args"}],"beginCaptures":{"1":{"name":"entity.name.template.function.lark"},"2":{"patterns":[{"include":"#name-prefix"}]}}}}}