{"name":"ANTLR","scopeName":"source.antlr","patterns":[{"include":"#strings"},{"include":"#comments"},{"name":"meta.options.antlr","begin":"\\boptions\\b","end":"(?\u003c=\\})","patterns":[{"name":"meta.options-block.antlr","begin":"\\{","end":"\\}","patterns":[{"include":"#strings"},{"include":"#comments"},{"name":"constant.numeric.antlr","match":"\\b\\d+\\b"},{"name":"variable.other.option.antlr","match":"\\b(k|charVocabulary|filter|greedy|paraphrase|exportVocab|buildAST|defaultErrorHandler|language|namespace|namespaceStd|namespaceAntlr|genHashLines)\\b"},{"name":"constant.language.boolean.antlr","match":"\\b(true|false)\\b"}],"beginCaptures":{"0":{"name":"punctuation.section.options.begin.antlr"}},"endCaptures":{"0":{"name":"punctuation.section.options.end.antlr"}}}],"beginCaptures":{"0":{"name":"keyword.other.options.antlr"}}},{"name":"meta.definition.class.antlr","begin":"^(class)\\b\\s+(\\w+)","end":";","patterns":[{"name":"meta.definition.class.extends.antlr","begin":"\\b(extends)\\b\\s+","end":"(?=;)","patterns":[{"name":"support.class.antlr","match":"\\b(Parser|Lexer|TreeWalker)\\b"}],"captures":{"1":{"name":"storage.modifier.antlr"}}}],"captures":{"1":{"name":"storage.type.antlr"},"2":{"name":"entity.name.type.class.antlr"}}},{"name":"storage.modifier.antlr","match":"^protected\\b"},{"name":"entity.name.type.token.antlr","match":"^[[:upper:]_][[:upper:][:digit:]_]*\\b"},{"name":"meta.rule.antlr","match":"^(\\w+)(?:\\s+(returns\\b))?","captures":{"1":{"name":"entity.name.function.rule.antlr"},"2":{"name":"keyword.control.antlr"}}},{"name":"constant.other.token.antlr","match":"\\b[[:upper:]_][[:upper:][:digit:]_]*\\b"},{"include":"#nested-curly"}],"repository":{"comments":{"patterns":[{"name":"comment.block.antlr","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.antlr"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.antlr"}}},{"begin":"(^[ \\t]+)?(?=//)","end":"(?!\\G)","patterns":[{"name":"comment.line.double-slash.antlr","begin":"//","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.antlr"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.antlr"}}}]},"nested-curly":{"name":"source.embedded.java-or-c.antlr","begin":"\\{","end":"\\}","patterns":[{"name":"keyword.control.java-or-c","match":"\\b(break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while)\\b"},{"name":"storage.type.java-or-c","match":"\\b(asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\b"},{"name":"storage.modifier.java-or-c","match":"\\b(const|extern|register|restrict|static|volatile|inline)\\b"},{"name":"constant.language.java-or-c","match":"\\b(NULL|true|false|TRUE|FALSE)\\b"},{"name":"keyword.operator.sizeof.java-or-c","match":"\\b(sizeof)\\b"},{"name":"constant.numeric.java-or-c","match":"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{"name":"string.quoted.double.java-or-c","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.antlr","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.java-or-c"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.java-or-c"}}},{"name":"string.quoted.single.java-or-c","begin":"'","end":"'","patterns":[{"name":"constant.character.escape.antlr","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.java-or-c"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.java-or-c"}}},{"name":"support.constant.eof-char.antlr","match":"\\bEOF_CHAR\\b"},{"include":"#comments"}],"beginCaptures":{"0":{"name":"punctuation.section.group.begin.antlr"}},"endCaptures":{"0":{"name":"punctuation.section.group.end.antlr"}}},"strings":{"patterns":[{"name":"string.quoted.double.antlr","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.antlr","match":"\\\\(u[0-9A-Fa-f]{4}|.)"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.antlr"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.antlr"}}},{"name":"string.quoted.single.antlr","begin":"'","end":"'","patterns":[{"name":"constant.character.escape.antlr","match":"\\\\(u[0-9A-Fa-f]{4}|.)"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.antlr"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.antlr"}}}]}}}
