{"name":"Squirrel","scopeName":"source.nut","patterns":[{"include":"#special-block"},{"include":"#comments"},{"name":"keyword.control.squirrel","match":"\\b(break|case|catch|default|do|else|for|foreach|if|resume|return|switch|throw|try|while|yield)\\b"},{"name":"keyword.control.squirrel","match":"\\b(clone|delete|in|instanceof|typeof)\\b"},{"name":"variable.language.squirrel","match":"\\b(base|this)\\b"},{"name":"storage.type.squirrel","match":"\\b(class|constructor|function|local)\\b"},{"name":"storage.modifier.squirrel","match":"\\b(const|extends|static)\\b"},{"name":"constant.squirrel.squirrel","match":"\\b(null|true|false)\\b"},{"name":"keyword.operator.squirrel","match":"!|%|\u0026|\\*|\\-\\-|\\-|\\+\\+|\\+|==|=|!=|\u003c=\u003e|\u003c=|\u003e=|\u003c-|\u003e\u003e\u003e|\u003c\u003c|\u003e\u003e|\u003c|\u003e|!|\u0026\u0026|\\|\\||\\?\\:|\\*=|(?\u003c!\\()/=|%=|\\+=|\\-=|\u0026=|%=|\\."},{"name":"constant.numeric.squirrel","match":"\\b((0(x|X)[0-9a-fA-F]+)|([0-9]+(\\.[0-9]+)?))\\b"},{"name":"support.function.any-method.squirrel","match":"\\b([_A-Za-z][_A-Za-z0-9]\\w*)\\b(?=\\s*(?:[({\"']|\\[\\[))"},{"name":"variable.other.squirrel","match":"(?\u003c=[^.]\\.)\\b([_A-Za-z][_A-Za-z0-9]\\w*)"},{"include":"#attributes"},{"include":"#block"},{"include":"#strings"}],"repository":{"attributes":{"name":"meta.attributes.squirrel","begin":"\u003c/","end":"/\u003e","patterns":[{"include":"$base"}]},"block":{"patterns":[{"name":"meta.block.squirrel","begin":"\\{","end":"\\}","patterns":[{"include":"$base"}],"beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.squirrel"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.squirrel"}}}]},"comments":{"patterns":[{"name":"comment.block.squirrel","match":"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?","captures":{"1":{"name":"meta.toc-list.banner.block.squirrel"}}},{"name":"comment.block.squirrel","begin":"/\\*","end":"\\*/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.squirrel"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.squirrel"}}},{"begin":"(^[ \\t]+)?(?=//)","end":"(?!\\G)","patterns":[{"name":"comment.line.double-slash.squirrel","begin":"//","end":"(?=\\n)","beginCaptures":{"0":{"name":"punctuation.definition.comment.squirrel"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.squirrel"}}},{"begin":"(^[ \\t]+)?(?=#)","end":"(?!\\G)","patterns":[{"name":"comment.line.hash.squirrel","begin":"#","end":"(?=\\n)","beginCaptures":{"0":{"name":"punctuation.definition.comment.squirrel"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.squirrel"}}}]},"special-block":{"patterns":[{"name":"meta.class-block.squirrel","begin":"\\b(class)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*(extends)\\s*([_A-Za-z][_A-Za-z0-9]*\\b))?","end":"(?\u003c=\\})|(?=(=))","patterns":[{"include":"#block"}],"beginCaptures":{"1":{"name":"storage.type.squirrel"},"2":{"name":"entity.name.type.squirrel"},"4":{"name":"storage.type.modifier.squirrel"},"5":{"name":"entity.name.type.inherited.squirrel"}}},{"name":"meta.function-block.squirrel","begin":"\\b(function)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*(::)\\s*([_A-Za-z][_A-Za-z0-9]*\\b))?","end":"(?\u003c=\\})|(?=(=))","patterns":[{"include":"#block"}],"beginCaptures":{"1":{"name":"storage.type.squirrel"},"2":{"name":"entity.name.type.squirrel"},"4":{"name":"punctuation.separator.global.access.squirrel"},"5":{"name":"entity.name.function.squirrel"}}},{"name":"meta.namespace-block.squirrel","begin":"\\b([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*(\u003c-))","end":"(?\u003c=\\})|(?=(;|,|\\(|\\)|\u003e|\\[|\\]|=))","patterns":[{"include":"#block"}],"beginCaptures":{"1":{"name":"entity.name.type.squirrel"},"3":{"name":"punctuation.separator.namespace.access.squirrel"}}}]},"strings":{"patterns":[{"name":"string.quoted.double.squirrel","begin":"@?\"","end":"\"","patterns":[{"name":"constant.character.escape.squirrel","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.squirrel"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.squirrel"}}}]}}}
