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