{"name":"q output","scopeName":"source.q_output","patterns":[{"name":"source.q_output","match":"(^error:)\\s*(.*)","captures":{"2":{"name":"message.error.q_output"}}},{"name":"meta.header.q_output","begin":"(%{)\\s*$","end":"^\\s*(%})","patterns":[{"include":"source.ocaml"}],"beginCaptures":{"1":{"name":"punctuation.section.header.begin.q_output"}},"endCaptures":{"1":{"name":"punctuation.section.header.end.q_output"}}},{"name":"meta.declarations.q_output","begin":"(?\u003c=%})\\s*$","end":"(?:^)(?=%%)","patterns":[{"include":"#comments"},{"include":"#declaration-matches"}]},{"name":"meta.rules.q_output","begin":"(%%)\\s*$","end":"^\\s*(%%)","patterns":[{"include":"#comments"},{"include":"#rules"}],"beginCaptures":{"1":{"name":"punctuation.section.rules.begin.q_output"}},"endCaptures":{"1":{"name":"punctuation.section.rules.end.q_output"}}},{"include":"source.ocaml"},{"include":"#comments"},{"name":"invalid.illegal.unrecognized-character.ocaml","match":"(’|‘|“|”)"}],"repository":{"comments":{"patterns":[{"name":"comment.block.q_output","begin":"/\\*","end":"\\*/","patterns":[{"include":"#comments"}]},{"name":"comment.block.string.quoted.double.q_output","begin":"(?=[^\\\\])(\")","end":"\"","patterns":[{"name":"comment.block.string.constant.character.escape.q_output","match":"\\\\(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\\d\\d|[bnrt'\"\\\\])"}]}]},"declaration-matches":{"patterns":[{"name":"meta.token.declaration.q_output","begin":"(%)(token)","end":"^\\s*($|(^\\s*(?=%)))","patterns":[{"include":"#symbol-types"},{"name":"entity.name.type.token.q_output","match":"[A-Z][A-Za-z0-9_]*"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.other.decorator.token.q_output"},"2":{"name":"keyword.other.token.q_output"}}},{"name":"meta.token.associativity.q_output","begin":"(%)(left|right|nonassoc)","end":"(^\\s*$)|(^\\s*(?=%))","patterns":[{"name":"entity.name.type.token.q_output","match":"[A-Z][A-Za-z0-9_]*"},{"name":"entity.name.function.non-terminal.reference.q_output","match":"[a-z][A-Za-z0-9_]*"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.other.decorator.token.associativity.q_output"},"2":{"name":"keyword.other.token.associativity.q_output"}}},{"name":"meta.start-symbol.q_output","begin":"(%)(start)","end":"(^\\s*$)|(^\\s*(?=%))","patterns":[{"name":"entity.name.function.non-terminal.reference.q_output","match":"[a-z][A-Za-z0-9_]*"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.other.decorator.start-symbol.q_output"},"2":{"name":"keyword.other.start-symbol.q_output"}}},{"name":"meta.symbol-type.q_output","begin":"(%)(type)","end":"$\\s*(?!%)","patterns":[{"include":"#symbol-types"},{"name":"entity.name.type.token.reference.q_output","match":"[A-Z][A-Za-z0-9_]*"},{"name":"entity.name.function.non-terminal.reference.q_output","match":"[a-z][A-Za-z0-9_]*"},{"include":"#comments"}],"beginCaptures":{"1":{"name":"keyword.other.decorator.symbol-type.q_output"},"2":{"name":"keyword.other.symbol-type.q_output"}}}]},"precs":{"patterns":[{"name":"meta.precidence.declaration","match":"(%)(prec)\\s+(([a-z][a-zA-Z0-9_]*)|(([A-Z][a-zA-Z0-9_]*)))","captures":{"1":{"name":"keyword.other.decorator.precedence.q_output"},"2":{"name":"keyword.other.precedence.q_output"},"4":{"name":"entity.name.function.non-terminal.reference.q_output"},"5":{"name":"entity.name.type.token.reference.q_output"}}}]},"references":{"patterns":[{"name":"entity.name.function.non-terminal.reference.q_output","match":"[a-z][a-zA-Z0-9_]*"},{"name":"entity.name.type.token.reference.q_output","match":"[A-Z][a-zA-Z0-9_]*"}]},"rule-patterns":{"patterns":[{"name":"meta.rule-match.ocaml","begin":"((?\u003c!\\||:)(\\||:)(?!\\||:))","end":"\\s*(?=\\||;)","patterns":[{"include":"#precs"},{"include":"#semantic-actions"},{"include":"#references"},{"include":"#comments"}],"beginCaptures":{"0":{"name":"punctuation.separator.rule.q_output"}}}]},"rules":{"patterns":[{"name":"meta.non-terminal.q_output","begin":"[a-z][a-zA-Z_]*","end":";","patterns":[{"include":"#rule-patterns"}],"beginCaptures":{"0":{"name":"entity.name.function.non-terminal.q_output"}},"endCaptures":{"0":{"name":"punctuation.separator.rule.q_output"}}}]},"semantic-actions":{"patterns":[{"name":"meta.action.semantic.q_output","begin":"[^\\']({)","end":"(})","patterns":[{"include":"source.ocaml"}],"beginCaptures":{"1":{"name":"punctuation.definition.action.semantic.q_output"}},"endCaptures":{"1":{"name":"punctuation.definition.action.semantic.q_output"}}}]},"symbol-types":{"patterns":[{"name":"meta.token.type-declaration.q_output","begin":"\u003c","end":"\u003e","patterns":[{"include":"source.ocaml"}],"beginCaptures":{"0":{"name":"punctuation.definition.type-declaration.begin.q_output"}},"endCaptures":{"0":{"name":"punctuation.definition.type-declaration.end.q_output"}}}]}}}
