{"name":"BitBake","scopeName":"source.bb","patterns":[{"include":"#escaped-single-quote"},{"include":"#escaped-double-quote"},{"include":"#string"},{"include":"#numeric"},{"include":"#keywords"},{"include":"#comment"},{"include":"#inline-python"},{"include":"#variable-expansion"},{"include":"#functions"},{"include":"#bitbake-operator"},{"include":"#variable-name"},{"include":"#operator"}],"repository":{"bitbake-operator":{"name":"keyword.control.bb","match":"(?\u003c=:)(append|prepend|remove)"},"comment":{"match":"(\\s*)((#)(.*))\\n","captures":{"1":{"name":"punctuation.whitespace.comment.leading.bb"},"2":{"name":"comment.line.bb"},"3":{"name":"comment.line.number-sign.bb"},"4":{"name":"comment.line.text.bb"}}},"escaped-double-quote":{"name":"constant.character.escape.bb","match":"\\\\\""},"escaped-single-quote":{"name":"constant.character.escape.bb","match":"\\\\'"},"functions":{"match":"([a-zA-Z_][\\w_]*)(:([a-zA-Z_][\\w_]*))?(?=\\s*\\()","captures":{"1":{"name":"entity.name.function.python.bb"},"2":{"name":"keyword.operator.bb"},"3":{"name":"keyword.other.bitbake-operator.bb"}}},"inline-python":{"begin":"(\\$\\{(@))","end":"(\\})","patterns":[{"include":"#operator"},{"include":"#keywords"},{"name":"meta.embedded.brackets.begin.bb","match":"(\\[)"},{"name":"meta.embedded.brackets.end.bb","match":"(\\])"},{"include":"#numeric"},{"include":"#functions"},{"include":"#parenthesis-open"},{"include":"#parenthesis-close"},{"include":"#variable-name"},{"include":"#string"}],"beginCaptures":{"1":{"name":"punctuation.definition.template-expression.end.bb"},"2":{"name":"entity.name.function.decorator.python.bb"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end.bb"}}},"keywords":{"patterns":[{"match":"(?\u003c![[:punct:]])\\b(include|require|inherit|inherit_defer|addtask|deltask|after|before|export|echo|if|fi|unset|print|fakeroot|EXPORT_FUNCTIONS|INHERIT)\\b(?![[:punct:]])","captures":{"1":{"name":"keyword.control.bb"}}},{"include":"#python-keywords"},{"captures":{"1":{"name":"storage.type.function.python.bb"}}}]},"numeric":{"name":"constant.numeric.bb","match":"(-|\\.)?[0-9]+(\\.[0-9]+)?"},"operator":{"name":"keyword.operator.bb","match":"(=|\\?=|\\?\\?=|:=|\\+=|=\\+|\\.=|=\\.|\\.|,)"},"parenthesis-close":{"name":"meta.embedded.parenthesis.close.bb","match":"\\)"},"parenthesis-open":{"name":"meta.embedded.parenthesis.open.bb","match":"([\\w])*\\("},"python-keywords":{"patterns":[{"match":"\\b(if|elif|else|for|while|break|continue|return|yield|try|except|finally|raise|assert|import|from|as|pass|del|with|async|await)\\b","captures":{"1":{"name":"keyword.control.bb"}}},{"match":"\\b(def|class|global|nonlocal|and|or|not|in|is|lambda)\\b\\s+","captures":{"1":{"name":"storage.type.function.python.bb"}}},{"name":"constant.language.python.bb","match":"\\b(True|False)\\b"}]},"string":{"patterns":[{"name":"string.quoted.triple.bb","begin":"(\"\"\")","end":"(\"\"\")","patterns":[{"include":"#escaped-single-quote"},{"include":"#escaped-double-quote"},{"include":"#inline-python"},{"include":"#variable-expansion"}]},{"name":"string.quoted.double.bb","begin":"(\")","end":"(\")","patterns":[{"include":"#escaped-double-quote"},{"include":"#inline-python"},{"include":"#variable-expansion"}]},{"name":"string.quoted.single.bb","begin":"(')","end":"(')","patterns":[{"include":"#escaped-single-quote"},{"include":"#inline-python"},{"include":"#variable-expansion"}]}]},"variable-expansion":{"name":"variable.other.names.bb","begin":"(\\$\\{)","end":"(\\})","beginCaptures":{"1":{"name":"punctuation.definition.template-expression.begin.bb"}},"endCaptures":{"1":{"name":"punctuation.definition.template-expression.end.bb"}}},"variable-name":{"match":"([a-zA-Z_][\\w_]*)","captures":{"1":{"name":"variable.other.names.bb"}}}}}