{"name":"Jison Lex","scopeName":"source.jisonlex","patterns":[{"begin":"%%","end":"\\z","patterns":[{"begin":"^%%","end":"\\z","patterns":[{"name":"meta.section.user-code.jisonlex","contentName":"source.js.embedded.jison","begin":"\\G","end":"\\z","patterns":[{"include":"#user_code_section"}]}],"beginCaptures":{"0":{"name":"meta.separator.section.jisonlex"}}},{"name":"meta.section.rules.jisonlex","begin":"\\G","end":"(?=^%%)","patterns":[{"include":"#rules_section"}]}],"beginCaptures":{"0":{"name":"meta.separator.section.jisonlex"}}},{"name":"meta.section.definitions.jisonlex","begin":"^","end":"(?=%%)","patterns":[{"include":"#definitions_section"}]}],"repository":{"definitions_section":{"patterns":[{"include":"source.jison#comments"},{"include":"source.jison#include_declarations"},{"name":"meta.definition.jisonlex","begin":"\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b","end":"$","patterns":[{"include":"source.jison#comments"},{"name":"string.regexp.jisonlex","begin":"(?=\\S)","end":"(?=\\s)","patterns":[{"include":"#regexp"}]}],"beginCaptures":{"0":{"name":"entity.name.other.definition.jisonlex"}}},{"name":"meta.start-condition.jisonlex","begin":"%[sx]\\b","end":"$","patterns":[{"include":"source.jison#comments"},{"name":"entity.name.function.jisonlex","match":"\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b"},{"name":"invalid.illegal.jisonlex","match":"\\S"}],"beginCaptures":{"0":{"name":"keyword.other.start-condition.jisonlex"}}},{"include":"source.jison#options_declarations"},{"name":"invalid.unimplemented.jisonlex","match":"%(?:array|pointer)"},{"include":"source.jison#user_code_blocks"}]},"name_uses":{"patterns":[{"name":"constant.other.name-use.jisonlex","match":"(\\{)[[:alpha:]_](?:[\\w-]*\\w)?(\\})","captures":{"1":{"name":"punctuation.definition.name-use.begin.jisonlex"},"2":{"name":"punctuation.definition.name-use.end.jisonlex"}}}]},"regexp":{"patterns":[{"include":"source.jison#comments"},{"name":"keyword.other.character-class.any.regexp.jisonlex","match":"\\."},{"name":"keyword.other.anchor.word-boundary.regexp.jisonlex","match":"\\\\b"},{"name":"keyword.other.anchor.non-word-boundary.regexp.jisonlex","match":"\\\\B"},{"name":"keyword.other.anchor.start-of-input.regexp.jisonlex","match":"\\^"},{"name":"keyword.other.anchor.end-of-input.regexp.jisonlex","match":"\\$"},{"name":"keyword.other.back-reference.regexp.jisonlex","match":"\\\\[1-9]\\d*"},{"name":"keyword.operator.quantifier.regexp.jisonlex","match":"(?:[+*?]|\\{(?:\\d+(?:,(?:\\d+)?)?|,\\d+)\\})\\??"},{"name":"keyword.operator.alternation.regexp.jisonlex","match":"\\|"},{"name":"meta.non-capturing.group.regexp.jisonlex","begin":"\\(\\?:","end":"\\)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.begin.regexp.jisonlex"}},"endCaptures":{"0":{"name":"punctuation.definition.group.end.regexp.jisonlex"}}},{"name":"meta.lookahead.assertion.regexp.jisonlex","begin":"\\(\\?=","end":"\\)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.begin.regexp.jisonlex"}},"endCaptures":{"0":{"name":"punctuation.definition.group.end.regexp.jisonlex"}}},{"name":"meta.negative.lookahead.assertion.regexp.jisonlex","begin":"\\(\\?!","end":"\\)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.begin.regexp.jisonlex"}},"endCaptures":{"0":{"name":"punctuation.definition.group.end.regexp.jisonlex"}}},{"name":"meta.group.regexp.jisonlex","begin":"\\(","end":"\\)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.begin.regexp.jisonlex"}},"endCaptures":{"0":{"name":"punctuation.definition.group.end.regexp.jisonlex"}}},{"name":"constant.other.character-class.set.regexp.jisonlex","begin":"(\\[)(\\^)?","end":"\\]","patterns":[{"include":"#name_uses"},{"include":"#regexp_character_class"}],"beginCaptures":{"1":{"name":"punctuation.definition.character-class.begin.regexp.jisonlex"},"2":{"name":"keyword.operator.negation.regexp.jisonlex"}},"endCaptures":{"0":{"name":"punctuation.definition.character-class.end.regexp.jisonlex"}}},{"include":"#regexp_character_class"},{"include":"#name_uses"},{"include":"source.jison#quoted_strings"},{"name":"keyword.other.eof.regexp.jisonlex","match":"\u003c\u003cEOF\u003e\u003e"},{"name":"keyword.operator.negative.lookahead.regexp.jisonlex","match":"/!"},{"name":"keyword.operator.lookahead.regexp.jisonlex","match":"/"}]},"regexp_character_class":{"patterns":[{"name":"constant.character.escape.character-class.word.regexp.jisonlex","match":"\\\\w"},{"name":"constant.character.escape.character-class.non-word.regexp.jisonlex","match":"\\\\W"},{"name":"constant.character.escape.character-class.space.regexp.jisonlex","match":"\\\\s"},{"name":"constant.character.escape.character-class.non-space.regexp.jisonlex","match":"\\\\S"},{"name":"constant.character.escape.character-class.digit.regexp.jisonlex","match":"\\\\d"},{"name":"constant.character.escape.character-class.non-digit.regexp.jisonlex","match":"\\\\D"},{"name":"constant.character.escape.character-class.control.regexp.jisonlex","match":"\\\\c[A-Z]"},{"include":"source.js#string_escapes"}]},"rules_section":{"patterns":[{"include":"source.jison#comments"},{"name":"meta.start-conditions.jisonlex","begin":"(?:^|(?\u003c=%\\}))\u003c(?!\u003cEOF\u003e\u003e)","end":"\u003e","patterns":[{"name":"keyword.other.jisonlex","match":"\\bINITIAL\\b"},{"name":"entity.name.function.jisonlex","match":"\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b"},{"name":"punctuation.separator.start-condition.jisonlex","match":","},{"name":"keyword.other.any-start-condition.jisonlex","match":"(?\u003c=\u003c)\\*(?=\u003e)"},{"name":"invalid.illegal.jisonlex","match":"."}],"beginCaptures":{"0":{"name":"punctuation.definition.start-conditions.begin.jisonlex"}},"endCaptures":{"0":{"name":"punctuation.definition.start-conditions.end.jisonlex"}}},{"name":"meta.rule.action.jisonlex","begin":"(?=%\\{)","end":"(?\u003c=%\\})","patterns":[{"include":"source.jison#user_code_blocks"}]},{"name":"string.regexp.jisonlex","begin":"(?:^|(?\u003c=\u003e|%\\}))(?=\\S)","end":"(?=\\s|%\\{)","patterns":[{"include":"#regexp"}]},{"name":"meta.rule.action.jisonlex","contentName":"source.js.embedded.jison","begin":"(?=\\S)","end":"$","patterns":[{"include":"source.jison#include_declarations"},{"include":"source.js"}]}]},"user_code_section":{"patterns":[{"include":"source.jison#user_code_include_declarations"},{"include":"source.js"}]}}}