[{"displayName":"Ara","fileTypes":["ara"],"name":"ara","patterns":[{"include":"#namespace"},{"include":"#named-arguments"},{"include":"#comments"},{"include":"#keywords"},{"include":"#strings"},{"include":"#numbers"},{"include":"#operators"},{"include":"#type"},{"include":"#function-call"}],"repository":{"class-name":{"patterns":[{"begin":"\\b(?i)(?<!\\$)(?=[A-Z\\\\_a-z])","end":"(?i)([_a-z][0-9_a-z]*)?(?=[^0-9\\\\_a-z])\\b","endCaptures":{"1":{"name":"support.class.ara"}},"patterns":[{"include":"#namespace"}]}]},"comments":{"patterns":[{"begin":"/\\*","captures":{"0":{"name":"punctuation.definition.comment.ara"}},"end":"\\*/","name":"comment.block.ara"},{"begin":"(^[\\t ]+)?(?=//)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.ara"}},"end":"(?!\\G)","patterns":[{"begin":"//","beginCaptures":{"0":{"name":"punctuation.definition.comment.ara"}},"end":"\\n","name":"comment.line.double-slash.ara"}]}]},"function-call":{"patterns":[{"begin":"(?i)(?=\\\\?[0-9\\\\_a-z]+\\\\[_a-z][0-9_a-z]*\\s*(\\(|(::<)))","end":"(?=\\s*(\\(|(::<)))","patterns":[{"include":"#user-function-call"}]},{"begin":"(?i)(\\\\)?(?=\\b[_a-z][0-9_a-z]*\\s*(\\(|(::<)))","beginCaptures":{"1":{"name":"punctuation.separator.inheritance.php"}},"end":"(?=\\s*(\\(|(::<)))","patterns":[{"include":"#user-function-call"}]}]},"interpolation":{"patterns":[{"match":"\\\\[0-7]{1,3}","name":"constant.numeric.octal.ara"},{"match":"\\\\x\\h{1,2}","name":"constant.numeric.hex.ara"},{"match":"\\\\[\"$\\\\nrt]","name":"constant.character.escape.ara"}]},"keywords":{"patterns":[{"match":"\\b(await|async|concurrently|break|continue|do|else|elseif|for|if|loop|while|foreach|match|return|try|yield|from|catch|finally|default|exit)\\b","name":"keyword.control.ara"},{"match":"\\b(const|enum|class|interface|trait|namespace|type|case|function|fn)\\b","name":"storage.decl.ara"},{"match":"\\b(final|abstract|static|readonly|public|private|protected)\\b","name":"storage.modifier.ara"},{"match":"\\b(as|is|extends|implements|use|where|clone|new)\\b","name":"keyword.other.ara"}]},"named-arguments":{"captures":{"1":{"name":"entity.name.variable.parameter.ara"},"2":{"name":"punctuation.separator.colon.ara"}},"match":"(?i)(?<=^|[(,])\\s*([_a-z\\x7F-\\x{10FFFF}][0-9_a-z\\x7F-\\x{10FFFF}]*)\\s*(:)(?!:)"},"namespace":{"begin":"(?i)((namespace)|[0-9_a-z]+)?(\\\\)(?=.*?[^0-9\\\\_a-z])","beginCaptures":{"1":{"name":"entity.name.type.namespace.php"},"3":{"name":"punctuation.separator.inheritance.php"}},"end":"(?i)(?=[0-9_a-z]*[^0-9\\\\_a-z])","name":"support.other.namespace.php","patterns":[{"match":"(?i)[0-9_a-z]+(?=\\\\)","name":"entity.name.type.namespace.php"},{"captures":{"1":{"name":"punctuation.separator.inheritance.php"}},"match":"(?i)(\\\\)"}]},"numbers":{"patterns":[{"match":"0[Xx]\\h+(?:_\\h+)*","name":"constant.numeric.hex.ara"},{"match":"0[Bb][01]+(?:_[01]+)*","name":"constant.numeric.binary.ara"},{"match":"0[Oo][0-7]+(?:_[0-7]+)*","name":"constant.numeric.octal.ara"},{"match":"0(?:_?[0-7]+)+","name":"constant.numeric.octal.ara"},{"captures":{"1":{"name":"punctuation.separator.decimal.period.ara"},"2":{"name":"punctuation.separator.decimal.period.ara"}},"match":"(?:[0-9]+(?:_[0-9]+)*)?(\\.)[0-9]+(?:_[0-9]+)*(?:[Ee][-+]?[0-9]+(?:_[0-9]+)*)?|[0-9]+(?:_[0-9]+)*(\\.)(?:[0-9]+(?:_[0-9]+)*)?(?:[Ee][-+]?[0-9]+(?:_[0-9]+)*)?|[0-9]+(?:_[0-9]+)*[Ee][-+]?[0-9]+(?:_[0-9]+)*","name":"constant.numeric.decimal.ara"},{"match":"0|[1-9](?:_?[0-9]+)*","name":"constant.numeric.decimal.ara"}]},"operators":{"patterns":[{"match":"((?:[-%*+/^]|&&|[\\&<>|]|<<|>>|\\?\\?)=)","name":"keyword.assignments.ara"},{"match":"([\\^|]|\\|\\||&&|>>|<<|[\\&~]|<<|>>|[<>]|<=>|\\?\\?|[:?]|\\?:)(?!=)","name":"keyword.operators.ara"},{"match":"(===??|!==?|<=|>=|[<>])(?!=)","name":"keyword.operator.comparison.ara"},{"match":"(([%+]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))","name":"keyword.operator.math.ara"},{"match":"(?<![<>])=(?![=>])","name":"keyword.operator.assignment.ara"},{"captures":{"1":{"name":"punctuation.brackets.round.ara"},"2":{"name":"punctuation.brackets.square.ara"},"3":{"name":"punctuation.brackets.curly.ara"},"4":{"name":"keyword.operator.comparison.ara"},"5":{"name":"punctuation.brackets.round.ara"},"6":{"name":"punctuation.brackets.square.ara"},"7":{"name":"punctuation.brackets.curly.ara"}},"match":"(?:\\b|(?:(\\))|(])|(})))[\\t ]+([<>])[\\t ]+(?:\\b|(?:(\\()|(\\[)|(\\{)))"},{"match":"\\???->","name":"keyword.operator.arrow.ara"},{"match":"=>","name":"keyword.operator.double-arrow.ara"},{"match":"::","name":"keyword.operator.static.ara"},{"match":"\\(\\.\\.\\.\\)","name":"keyword.operator.closure.ara"},{"match":"\\.\\.\\.","name":"keyword.operator.spread.ara"},{"match":"\\\\","name":"keyword.operator.namespace.ara"}]},"strings":{"patterns":[{"begin":"'","end":"'","name":"string.quoted.single.ara","patterns":[{"match":"\\\\['\\\\]","name":"constant.character.escape.ara"}]},{"begin":"\"","end":"\"","name":"string.quoted.double.ara","patterns":[{"include":"#interpolation"}]}]},"type":{"name":"support.type.php","patterns":[{"match":"\\b(?:void|true|false|null|never|float|bool|int|string|dict|vec|object|mixed|nonnull|resource|self|static|parent|iterable)\\b","name":"support.type.php"},{"begin":"([A-Z_a-z][0-9A-Z_a-z]*)<","beginCaptures":{"1":{"name":"support.class.php"}},"end":">","patterns":[{"include":"#type-annotation"}]},{"begin":"(shape\\()","end":"((,|\\.\\.\\.)?\\s*\\))","endCaptures":{"1":{"name":"keyword.operator.key.php"}},"name":"storage.type.shape.php","patterns":[{"include":"#type-annotation"},{"include":"#strings"},{"include":"#constants"}]},{"begin":"\\(","end":"\\)","patterns":[{"include":"#type-annotation"}]},{"begin":"\\(fn\\(","end":"\\)","patterns":[{"include":"#type-annotation"}]},{"include":"#class-name"},{"include":"#comments"}]},"user-function-call":{"begin":"(?i)(?=[0-9\\\\_a-z]*[_a-z][0-9_a-z]*\\s*\\()","end":"(?i)[_a-z][0-9_a-z]*(?=\\s*\\()","endCaptures":{"0":{"name":"entity.name.function.php"}},"name":"meta.function-call.php","patterns":[{"include":"#namespace"}]}},"scopeName":"source.ara"}]