{"name":"Haxe","scopeName":"source.hx","patterns":[{"include":"#all"}],"repository":{"abstract":{"name":"meta.abstract.hx","begin":"(?=abstract\\s+[A-Z])","end":"(?\u003c=\\})|(;)","patterns":[{"include":"#abstract-name"},{"include":"#abstract-name-post"},{"include":"#abstract-block"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"abstract-block":{"name":"meta.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#method"},{"include":"#modifiers"},{"include":"#variable"},{"include":"#block"},{"include":"#block-contents"}],"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"abstract-name":{"begin":"\\b(abstract)\\b","end":"([_A-Za-z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"1":{"name":"storage.type.class.hx"}},"endCaptures":{"1":{"name":"entity.name.type.class.hx"}}},"abstract-name-post":{"begin":"(?\u003c=\\w)","end":"([\\{;])","patterns":[{"include":"#global"},{"name":"keyword.other.hx","match":"\\b(from|to)\\b"},{"include":"#type"},{"name":"punctuation.definition.other.hx","match":"[\\(\\)]"}],"endCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}}},"accessor-method":{"patterns":[{"name":"entity.name.function.hx","match":"\\b(get|set)_[_A-Za-z]\\w*\\b"}]},"all":{"patterns":[{"include":"#global"},{"include":"#package"},{"include":"#import"},{"include":"#using"},{"name":"storage.modifier.hx","match":"\\b(final)\\b(?=\\s+(class|interface|extern|private))"},{"include":"#abstract"},{"include":"#class"},{"include":"#enum"},{"include":"#interface"},{"include":"#typedef"},{"include":"#block"},{"include":"#block-contents"}]},"array":{"name":"meta.array.literal.hx","begin":"\\[","end":"\\]","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"punctuation.definition.array.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.array.end.hx"}}},"arrow-function":{"name":"meta.method.arrow.hx","begin":"(\\()(?=[^(]*?\\)\\s*-\u003e)","end":"(\\))\\s*(-\u003e)","patterns":[{"include":"#arrow-function-parameter"}],"beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.hx"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.hx"},"2":{"name":"storage.type.function.arrow.hx"}}},"arrow-function-parameter":{"begin":"(?\u003c=\\(|,)","end":"(?=\\)|,)","patterns":[{"include":"#parameter-name"},{"include":"#arrow-function-parameter-type-hint"},{"include":"#parameter-assign"},{"include":"#punctuation-comma"},{"include":"#global"}]},"arrow-function-parameter-type-hint":{"begin":":","end":"(?=\\)|,|=)","patterns":[{"include":"#type"}],"beginCaptures":{"0":{"name":"keyword.operator.type.annotation.hx"}}},"block":{"begin":"\\{","end":"\\}","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.hx"}}},"block-contents":{"patterns":[{"include":"#global"},{"include":"#regex"},{"include":"#array"},{"include":"#constants"},{"include":"#strings"},{"include":"#metadata"},{"include":"#method"},{"include":"#variable"},{"include":"#modifiers"},{"include":"#new-expr"},{"include":"#for-loop"},{"include":"#keywords"},{"include":"#arrow-function"},{"include":"#method-call"},{"include":"#enum-constructor-call"},{"include":"#punctuation-braces"},{"include":"#macro-reification"},{"include":"#operators"},{"include":"#operator-assignment"},{"include":"#punctuation-terminator"},{"include":"#punctuation-comma"},{"include":"#punctuation-accessor"},{"include":"#identifiers"}]},"class":{"name":"meta.class.hx","begin":"(?=class)","end":"(?\u003c=\\})|(;)","patterns":[{"include":"#class-name"},{"include":"#class-name-post"},{"include":"#class-block"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"class-block":{"name":"meta.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#method"},{"include":"#modifiers"},{"include":"#variable"},{"include":"#block"},{"include":"#block-contents"}],"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"class-name":{"name":"meta.class.identifier.hx","begin":"\\b(class)\\b","end":"([_A-Za-z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"1":{"name":"storage.type.class.hx"}},"endCaptures":{"1":{"name":"entity.name.type.class.hx"}}},"class-name-post":{"begin":"(?\u003c=\\w)","end":"([\\{;])","patterns":[{"include":"#modifiers-inheritance"},{"include":"#type"}],"endCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}}},"comments":{"patterns":[{"name":"comment.block.documentation.hx","begin":"/\\*\\*(?!/)","end":"\\*/","patterns":[{"include":"#javadoc-tags"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.hx"}}},{"name":"comment.block.hx","begin":"/\\*","end":"\\*/","patterns":[{"include":"#javadoc-tags"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.hx"}}},{"name":"comment.line.double-slash.hx","match":"(//).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.hx"}}}]},"conditional-compilation":{"patterns":[{"match":"((#(if|elseif))[\\s!]+([a-zA-Z_][a-zA-Z0-9_]*(\\.[a-zA-Z_][a-zA-Z0-9_]*)*)(?=\\s|/\\*|//))","captures":{"0":{"name":"punctuation.definition.tag"}}},{"name":"punctuation.definition.tag","begin":"((#(if|elseif))[\\s!]*)(?=\\()","end":"(?\u003c=\\)|\\n)","patterns":[{"include":"#conditional-compilation-parens"}],"beginCaptures":{"0":{"name":"punctuation.definition.tag"}},"endCaptures":{"0":{"name":"punctuation.definition.tag"}}},{"name":"punctuation.definition.tag","match":"(#(end|else|error|line))"},{"name":"punctuation.definition.tag","match":"(#([a-zA-Z0-9_]*))\\s"}]},"conditional-compilation-parens":{"begin":"\\(","end":"\\)","patterns":[{"include":"#conditional-compilation-parens"}]},"constant-name":{"name":"variable.other.hx","match":"\\b([_A-Z][_A-Z0-9]*)\\b"},"constants":{"patterns":[{"name":"constant.language.hx","match":"\\b(true|false|null)\\b"},{"name":"constant.numeric.hex.hx","match":"\\b(0(x|X)[0-9a-fA-F]*)\\b"},{"match":"(?x)\n(?\u003c!\\$)(?:\n (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # 1.1E+3\n (?:\\b[0-9]+(\\.)[eE][+-]?[0-9]+\\b)| # 1.E+3\n (?:\\B(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # .1E+3\n (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)| # 1E+3\n (?:\\b[0-9]+(\\.)[0-9]+\\b)| # 1.1\n (?:\\b[0-9]+(\\.)(?!\\.)\\B)| # 1.\n (?:\\B(\\.)[0-9]+\\b)| # .1\n (?:\\b[0-9]+\\b) # 1\n)(?!\\$)","captures":{"0":{"name":"constant.numeric.decimal.hx"},"1":{"name":"meta.delimiter.decimal.period.hx"},"2":{"name":"meta.delimiter.decimal.period.hx"},"3":{"name":"meta.delimiter.decimal.period.hx"},"4":{"name":"meta.delimiter.decimal.period.hx"},"5":{"name":"meta.delimiter.decimal.period.hx"},"6":{"name":"meta.delimiter.decimal.period.hx"}}}]},"enum":{"name":"meta.enum.hx","begin":"(?=enum\\s+[A-Z])","end":"(?\u003c=\\})|(;)","patterns":[{"include":"#enum-name"},{"include":"#enum-name-post"},{"include":"#enum-block"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"enum-block":{"name":"meta.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#global"},{"include":"#metadata"},{"include":"#parameters"},{"include":"#identifiers"}],"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"enum-constructor-call":{"begin":"\\b(?\u003c!\\.)((_*[a-z]\\w*\\.)*)(_*[A-Z]\\w*)(?:(\\.)(_*[A-Z]\\w*[a-z]\\w*))*\\s*(\\()","end":"(\\))","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"support.package.hx"},"3":{"name":"entity.name.type.hx"},"4":{"name":"support.package.hx"},"5":{"name":"entity.name.type.hx"},"6":{"name":"meta.brace.round.hx"}},"endCaptures":{"1":{"name":"meta.brace.round.hx"}}},"enum-name":{"begin":"\\b(enum)\\b","end":"([_A-Za-z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"1":{"name":"storage.type.class.hx"}},"endCaptures":{"1":{"name":"entity.name.type.class.hx"}}},"enum-name-post":{"begin":"(?\u003c=\\w)","end":"([\\{;])","patterns":[{"include":"#type"}],"endCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}}},"for-loop":{"begin":"\\b(for)\\b\\s*(\\()","end":"(\\))","patterns":[{"name":"keyword.other.in.hx","match":"\\b(in)\\b"},{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"keyword.control.flow-control.hx"},"2":{"name":"meta.brace.round.hx"}},"endCaptures":{"1":{"name":"meta.brace.round.hx"}}},"function-type":{"begin":"\\(","end":"\\)","patterns":[{"include":"#function-type-parameter"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.hx"}}},"function-type-parameter":{"begin":"(?\u003c=\\(|,)","end":"(?=\\)|,)","patterns":[{"include":"#global"},{"include":"#metadata"},{"include":"#operator-optional"},{"include":"#punctuation-comma"},{"include":"#function-type-parameter-name"},{"include":"#function-type-parameter-type-hint"},{"include":"#parameter-assign"},{"include":"#type"},{"include":"#global"}]},"function-type-parameter-name":{"match":"([_a-zA-Z]\\w*)(?=\\s*:)","captures":{"1":{"name":"variable.parameter.hx"}}},"function-type-parameter-type-hint":{"begin":":","end":"(?=\\)|,|=)","patterns":[{"include":"#type"}],"beginCaptures":{"0":{"name":"keyword.operator.type.annotation.hx"}}},"global":{"patterns":[{"include":"#comments"},{"include":"#conditional-compilation"}]},"identifier-name":{"name":"variable.other.hx","match":"\\b([_A-Za-z]\\w*)\\b"},"identifiers":{"patterns":[{"include":"#constant-name"},{"include":"#type-name"},{"include":"#identifier-name"}]},"import":{"begin":"import\\b","end":"$|(;)","patterns":[{"include":"#type-path"},{"name":"keyword.control.as.hx","match":"\\b(as)\\b"},{"name":"keyword.control.in.hx","match":"\\b(in)\\b"},{"name":"constant.language.import-all.hx","match":"\\*"},{"name":"variable.other.hxt","match":"\\b([_A-Za-z]\\w*)\\b(?=\\s*(as|in|$|(;)))"},{"include":"#type-path-package-name"}],"beginCaptures":{"0":{"name":"keyword.control.import.hx"}},"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"interface":{"name":"meta.interface.hx","begin":"(?=interface)","end":"(?\u003c=\\})|(;)","patterns":[{"include":"#interface-name"},{"include":"#interface-name-post"},{"include":"#interface-block"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"interface-block":{"name":"meta.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#method"},{"include":"#variable"},{"include":"#block"},{"include":"#block-contents"}],"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"interface-name":{"begin":"\\b(interface)\\b","end":"([_A-Za-z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"1":{"name":"storage.type.class.hx"}},"endCaptures":{"1":{"name":"entity.name.type.class.hx"}}},"interface-name-post":{"begin":"(?\u003c=\\w)","end":"([\\{;])","patterns":[{"include":"#global"},{"include":"#modifiers-inheritance"},{"include":"#type"}],"endCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}}},"javadoc-tags":{"patterns":[{"match":"(@(?:param|exception|throws|event))\\s+([_A-Za-z]\\w*)\\s+","captures":{"1":{"name":"storage.type.class.javadoc"},"2":{"name":"variable.other.javadoc"}}},{"match":"(@since)\\s+([\\w\\.-]+)\\s+","captures":{"1":{"name":"storage.type.class.javadoc"},"2":{"name":"constant.numeric.javadoc"}}},{"match":"@(param|exception|throws|deprecated|returns?|since|default|see|event)","captures":{"0":{"name":"storage.type.class.javadoc"}}}]},"keywords":{"patterns":[{"begin":"(?\u003c=trace|$type|if|while|for|super)\\s*(\\()","end":"\\)","patterns":[{"include":"#block-contents"}],"beginCaptures":{"2":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},{"begin":"(?\u003c=catch)\\s*(\\()","end":"\\)","patterns":[{"include":"#block-contents"},{"include":"#type-check"}],"beginCaptures":{"2":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},{"begin":"(?\u003c=cast)\\s*(\\()","end":"\\)","patterns":[{"begin":"(?=,)","end":"(?=\\))","patterns":[{"include":"#type"}]},{"include":"#block-contents"}],"beginCaptures":{"2":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},{"name":"keyword.control.catch-exception.hx","match":"\\b(try|catch|throw)\\b"},{"begin":"\\b(case|default)\\b","end":":|(?=if)|$","patterns":[{"include":"#global"},{"include":"#metadata"},{"match":"\\b(var|final)\\b\\s*([_a-zA-Z]\\w*)\\b","captures":{"1":{"name":"storage.type.variable.hx"},"2":{"name":"variable.other.hx"}}},{"include":"#array"},{"include":"#constants"},{"include":"#strings"},{"name":"meta.brace.round.hx","match":"\\("},{"name":"meta.brace.round.hx","match":"\\)"},{"include":"#macro-reification"},{"name":"keyword.operator.extractor.hx","match":"=\u003e"},{"include":"#operator-assignment"},{"include":"#punctuation-comma"},{"include":"#keywords"},{"include":"#method-call"},{"include":"#identifiers"}],"beginCaptures":{"1":{"name":"keyword.control.flow-control.hx"}}},{"name":"keyword.control.flow-control.hx","match":"\\b(if|else|return|do|while|for|break|continue|switch|case|default)\\b"},{"name":"keyword.other.untyped.hx","match":"\\b(cast|untyped)\\b"},{"name":"keyword.other.trace.hx","match":"\\btrace\\b"},{"name":"keyword.other.type.hx","match":"\\$type\\b"},{"name":"keyword.other.untyped-property.hx","match":"\\__(global|this)__\\b"},{"name":"variable.language.hx","match":"\\b(this|super)\\b"},{"name":"keyword.operator.new.hx","match":"\\bnew\\b"},{"name":"storage.type.hx","match":"\\b(abstract|class|enum|interface|typedef)\\b"},{"name":"storage.type.function.arrow.hx","match":"-\u003e"},{"include":"#modifiers"},{"include":"#modifiers-inheritance"}]},"keywords-accessor":{"name":"storage.type.property.hx","match":"\\b(default|get|set|dynamic|never|null)\\b"},"macro-reification":{"patterns":[{"match":"(\\$)([eabipv])\\{","captures":{"1":{"name":"punctuation.definition.reification.hx"},"2":{"name":"keyword.reification.hx"}}},{"match":"((\\$)([a-zA-Z]*))","captures":{"2":{"name":"punctuation.definition.reification.hx"},"3":{"name":"variable.reification.hx"}}}]},"metadata":{"patterns":[{"begin":"(@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|bypassAccessor|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|cs.assemblyMeta|cs.assemblyStrict|cs.using|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|file|fileXml|final|fixed|flash.property|font|forward.new|forward.variance|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|genericClassPerMethod|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inheritDoc|inline|internal|isVar|java.native|javaCanonical|jsRequire|jvm.synthetic|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noClosure|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|nullSafety|objc|objcProtocol|op|optional|overload|persistent|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|transitive|unifyMinDynamic|unreflective|unsafe|using|void|volatile)\\b)\\s*(\\()","end":"\\)","patterns":[{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"punctuation.metadata.hx"},"2":{"name":"storage.modifier.metadata.hx"},"3":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},{"match":"((@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|bypassAccessor|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|cs.assemblyMeta|cs.assemblyStrict|cs.using|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|file|fileXml|final|fixed|flash.property|font|forward.new|forward.variance|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|genericClassPerMethod|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inheritDoc|inline|internal|isVar|java.native|javaCanonical|jsRequire|jvm.synthetic|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noClosure|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|nullSafety|objc|objcProtocol|op|optional|overload|persistent|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|transitive|unifyMinDynamic|unreflective|unsafe|using|void|volatile)\\b))","captures":{"2":{"name":"punctuation.metadata.hx"},"3":{"name":"storage.modifier.metadata.hx"}}},{"begin":"(@)(:?[a-zA-Z_]*)\\s*(\\()","end":"\\)","patterns":[{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"punctuation.metadata.hx"},"2":{"name":"variable.metadata.hx"},"3":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},{"match":"(@)(:?)([a-zA-Z_]*(\\.))*([a-zA-Z_]*)?","captures":{"1":{"name":"punctuation.metadata.hx"},"2":{"name":"variable.metadata.hx"},"3":{"name":"variable.metadata.hx"},"4":{"name":"punctuation.accessor.hx"},"5":{"name":"variable.metadata.hx"}}}]},"method":{"name":"meta.method.hx","begin":"(?=\\bfunction\\b)","end":"(?\u003c=[\\};])","patterns":[{"include":"#macro-reification"},{"include":"#method-name"},{"include":"#method-name-post"},{"include":"#method-block"}]},"method-block":{"name":"meta.method.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}},"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"method-call":{"begin":"\\b(?:(__(?:addressOf|as|call|checked|cpp|cs|define_feature|delete|feature|field|fixed|foreach|forin|has_next|hkeys|in|int|is|java|js|keys|lock|lua|lua_table|new|php|physeq|prefix|ptr|resources|rethrow|set|setfield|sizeof|type|typeof|unprotect|unsafe|valueOf|var|vector|vmem_get|vmem_set|vmem_sign|instanceof|strict_eq|strict_neq)__)|([_a-z]\\w*))\\s*(\\()","end":"(\\))","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"1":{"name":"keyword.other.untyped-function.hx"},"2":{"name":"entity.name.function.hx"},"3":{"name":"meta.brace.round.hx"}},"endCaptures":{"1":{"name":"meta.brace.round.hx"}}},"method-name":{"begin":"\\b(function)\\b\\s*\\b(?:(new)|([_A-Za-z]\\w*))?\\b","end":"(?=$|\\()","patterns":[{"include":"#macro-reification"},{"include":"#type-parameters"}],"beginCaptures":{"1":{"name":"storage.type.function.hx"},"2":{"name":"storage.type.hx"},"3":{"name":"entity.name.function.hx"}}},"method-name-post":{"begin":"(?\u003c=[\\w\\s\u003e])","end":"(\\{)|(;)","patterns":[{"include":"#parameters"},{"include":"#method-return-type-hint"},{"include":"#block"},{"include":"#block-contents"}],"endCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"},"2":{"name":"punctuation.terminator.hx"}}},"method-return-type-hint":{"begin":"(?\u003c=\\))\\s*(:)","end":"(?=\\{|;|[a-z0-9])","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"keyword.operator.type.annotation.hx"}}},"modifiers":{"patterns":[{"name":"storage.type.class","match":"\\b(enum)\\b"},{"name":"storage.modifier.hx","match":"\\b(public|private|static|dynamic|inline|macro|extern|override|overload|abstract)\\b"},{"name":"storage.modifier.hx","match":"\\b(final)\\b(?=\\s+(public|private|static|dynamic|inline|macro|extern|override|overload|abstract|function))"}]},"modifiers-inheritance":{"name":"storage.modifier.hx","match":"\\b(implements|extends)\\b"},"new-expr":{"name":"new.expr.hx","begin":"(?\u003c!\\.)\\b(new)\\b","end":"(?=$|\\()","patterns":[{"include":"#type"}],"beginCaptures":{"1":{"name":"keyword.operator.new.hx"}}},"operator-assignment":{"name":"keyword.operator.assignment.hx","match":"(=)"},"operator-optional":{"name":"keyword.operator.optional.hx","match":"(\\?)(?!\\s)"},"operator-type-hint":{"name":"keyword.operator.type.annotation.hx","match":"(:)"},"operators":{"patterns":[{"name":"keyword.operator.logical.hx","match":"(\u0026\u0026|\\|\\|)"},{"name":"keyword.operator.bitwise.hx","match":"(~|\u0026|\\||\\^|\u003e\u003e\u003e|\u003c\u003c|\u003e\u003e)"},{"name":"keyword.operator.comparison.hx","match":"(==|!=|\u003c=|\u003e=|\u003c|\u003e)"},{"name":"keyword.operator.logical.hx","match":"(!)"},{"name":"keyword.operator.increment-decrement.hx","match":"(\\-\\-|\\+\\+)"},{"name":"keyword.operator.arithmetic.hx","match":"(\\-|\\+|\\*|\\/|%)"},{"name":"keyword.operator.intiterator.hx","match":"\\.\\.\\."},{"name":"keyword.operator.arrow.hx","match":"=\u003e"},{"name":"keyword.other.hx","match":"\\bis\\b(?!\\()"},{"begin":"\\?","end":":","patterns":[{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"keyword.operator.ternary.hx"}},"endCaptures":{"0":{"name":"keyword.operator.ternary.hx"}}}]},"package":{"begin":"package\\b","end":"$|(;)","patterns":[{"include":"#type-path"},{"include":"#type-path-package-name"}],"beginCaptures":{"0":{"name":"keyword.other.package.hx"}},"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"parameter":{"begin":"(?\u003c=\\(|,)","end":"(?=\\)(?!\\s*-\u003e)|,)","patterns":[{"include":"#parameter-name"},{"include":"#parameter-type-hint"},{"include":"#parameter-assign"},{"include":"#punctuation-comma"},{"include":"#global"}]},"parameter-assign":{"begin":"=","end":"(?=\\)|,)","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.hx"}}},"parameter-name":{"begin":"(?\u003c=\\(|,)","end":"([_a-zA-Z]\\w*)","patterns":[{"include":"#global"},{"include":"#metadata"},{"include":"#operator-optional"}],"endCaptures":{"1":{"name":"variable.parameter.hx"}}},"parameter-type-hint":{"begin":":","end":"(?=\\)(?!\\s*-\u003e)|,|=)","patterns":[{"include":"#type"}],"beginCaptures":{"0":{"name":"keyword.operator.type.annotation.hx"}}},"parameters":{"name":"meta.parameters.hx","begin":"\\(","end":"\\s*(\\)(?!\\s*-\u003e))","patterns":[{"include":"#parameter"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.hx"}},"endCaptures":{"1":{"name":"punctuation.definition.parameters.end.hx"}}},"punctuation-accessor":{"name":"punctuation.accessor.hx","match":"\\."},"punctuation-braces":{"begin":"\\(","end":"\\)","patterns":[{"include":"#keywords"},{"include":"#block"},{"include":"#block-contents"},{"include":"#type-check"}],"beginCaptures":{"0":{"name":"meta.brace.round.hx"}},"endCaptures":{"0":{"name":"meta.brace.round.hx"}}},"punctuation-comma":{"name":"punctuation.separator.comma.hx","match":","},"punctuation-terminator":{"name":"punctuation.terminator.hx","match":";"},"regex":{"name":"string.regexp.hx","begin":"(~/)","end":"(/)([gimsu]*)","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.hx"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.hx"},"2":{"name":"keyword.other.hx"}}},"regex-character-class":{"patterns":[{"name":"constant.other.character-class.regexp","match":"\\\\[wWsSdDtrnvf]|\\."},{"name":"constant.character.numeric.regexp","match":"\\\\([0-7]{3}|x[[:xdigit:]][[:xdigit:]]|u[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]])"},{"name":"constant.character.control.regexp","match":"\\\\c[A-Z]"},{"name":"constant.character.escape.backslash.regexp","match":"\\\\."}]},"regexp":{"patterns":[{"name":"keyword.control.anchor.regexp","match":"\\\\[bB]|\\^|\\$"},{"name":"keyword.other.back-reference.regexp","match":"\\\\[1-9]\\d*"},{"name":"keyword.operator.quantifier.regexp","match":"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{"name":"keyword.operator.or.regexp","match":"\\|"},{"name":"meta.group.assertion.regexp","begin":"(\\()((\\?=)|(\\?!))","end":"(\\))","patterns":[{"include":"#regexp"}],"beginCaptures":{"1":{"name":"punctuation.definition.group.regexp"},"2":{"name":"punctuation.definition.group.assertion.regexp"},"3":{"name":"meta.assertion.look-ahead.regexp"},"4":{"name":"meta.assertion.negative-look-ahead.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.group.regexp"}}},{"name":"meta.group.regexp","begin":"\\((\\?:)?","end":"\\)","patterns":[{"include":"#regexp"}],"beginCaptures":{"0":{"name":"punctuation.definition.group.regexp"},"1":{"name":"punctuation.definition.group.capture.regexp"}},"endCaptures":{"0":{"name":"punctuation.definition.group.regexp"}}},{"name":"constant.other.character-class.set.regexp","begin":"(\\[)(\\^)?","end":"(\\])","patterns":[{"name":"constant.other.character-class.range.regexp","match":"(?:.|(\\\\(?:[0-7]{3}|x[[:xdigit:]][[:xdigit:]]|u[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[[:xdigit:]][[:xdigit:]]|u[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]))|(\\\\c[A-Z])|(\\\\.))","captures":{"1":{"name":"constant.character.numeric.regexp"},"2":{"name":"constant.character.control.regexp"},"3":{"name":"constant.character.escape.backslash.regexp"},"4":{"name":"constant.character.numeric.regexp"},"5":{"name":"constant.character.control.regexp"},"6":{"name":"constant.character.escape.backslash.regexp"}}},{"include":"#regex-character-class"}],"beginCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"},"2":{"name":"keyword.operator.negation.regexp"}},"endCaptures":{"1":{"name":"punctuation.definition.character-class.regexp"}}},{"include":"#regex-character-class"}]},"string-escape-sequences":{"patterns":[{"name":"constant.character.escape.hx","match":"\\\\[0-3][0-9]{2}"},{"name":"constant.character.escape.hx","match":"\\\\x[0-9A-Fa-f]{2}"},{"name":"constant.character.escape.hx","match":"\\\\u[0-9]{4}"},{"name":"constant.character.escape.hx","match":"\\\\u\\{[0-9A-Fa-f]{1,}\\}"},{"name":"constant.character.escape.hx","match":"\\\\[nrt\"'\\\\]"},{"name":"invalid.escape.sequence.hx","match":"\\\\."}]},"strings":{"patterns":[{"name":"string.quoted.double.hx","begin":"\"","end":"\"","patterns":[{"include":"#string-escape-sequences"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.hx"}}},{"begin":"(')","end":"(')","patterns":[{"name":"string.quoted.single.hx","begin":"\\$(?=\\$)","end":"\\$","beginCaptures":{"0":{"name":"constant.character.escape.hx"}},"endCaptures":{"0":{"name":"constant.character.escape.hx"}}},{"include":"#string-escape-sequences"},{"begin":"(\\${)","end":"(})","patterns":[{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.block.end.hx"}}},{"match":"(\\$)([_a-zA-Z]\\w*)","captures":{"1":{"name":"punctuation.definition.block.begin.hx"},"2":{"name":"variable.other.hx"}}},{"name":"constant.character.escape.hx"},{"name":"string.quoted.single.hx","match":"."}],"beginCaptures":{"0":{"name":"string.quoted.single.hx"},"1":{"name":"punctuation.definition.string.begin.hx"}},"endCaptures":{"0":{"name":"string.quoted.single.hx"},"1":{"name":"punctuation.definition.string.end.hx"}}}]},"type":{"patterns":[{"include":"#global"},{"include":"#macro-reification"},{"include":"#type-name"},{"include":"#type-parameters"},{"name":"keyword.operator.type.function.hx","match":"-\u003e"},{"name":"keyword.operator.type.intersection.hx","match":"\u0026"},{"name":"keyword.operator.optional","match":"\\?(?=\\s*[_A-Z])"},{"name":"punctuation.definition.tag","match":"\\?(?!\\s*[_A-Z])"},{"begin":"(\\{)","end":"(?\u003c=\\})","patterns":[{"include":"#typedef-block"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.begin.hx"}}},{"include":"#function-type"}]},"type-check":{"begin":"(?\u003c!macro)(?=:)","end":"(?=\\))","patterns":[{"include":"#operator-type-hint"},{"include":"#type"}]},"type-name":{"patterns":[{"match":"\\b(Any|Array|ArrayAccess|Bool|Class|Date|DateTools|Dynamic|Enum|EnumValue|EReg|Float|IMap|Int|IntIterator|Iterable|Iterator|KeyValueIterator|KeyValueIterable|Lambda|List|ListIterator|ListNode|Map|Math|Null|Reflect|Single|Std|String|StringBuf|StringTools|Sys|Type|UInt|UnicodeString|ValueType|Void|Xml|XmlType)(?:(\\.)(_*[A-Z]\\w*[a-z]\\w*))*\\b","captures":{"1":{"name":"support.class.builtin.hx"},"2":{"name":"support.package.hx"},"3":{"name":"entity.name.type.hx"}}},{"match":"\\b(?\u003c![^.]\\.)((_*[a-z]\\w*\\.)*)(_*[A-Z]\\w*)(?:(\\.)(_*[A-Z]\\w*[a-z]\\w*))*\\b","captures":{"1":{"name":"support.package.hx"},"3":{"name":"entity.name.type.hx"},"4":{"name":"support.package.hx"},"5":{"name":"entity.name.type.hx"}}}]},"type-parameter-constraint-new":{"name":"keyword.operator.type.annotation.hxt","match":":"},"type-parameter-constraint-old":{"begin":"(:)\\s*(\\()","end":"\\)","patterns":[{"include":"#type"},{"include":"#punctuation-comma"}],"beginCaptures":{"1":{"name":"keyword.operator.type.annotation.hx"},"2":{"name":"punctuation.definition.constraint.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.constraint.end.hx"}}},"type-parameters":{"name":"meta.type-parameters.hx","begin":"(\u003c)","end":"(?=$)|(\u003e)","patterns":[{"include":"#type"},{"include":"#type-parameter-constraint-old"},{"include":"#type-parameter-constraint-new"},{"include":"#global"},{"include":"#regex"},{"include":"#array"},{"include":"#constants"},{"include":"#strings"},{"include":"#metadata"},{"include":"#punctuation-comma"}],"beginCaptures":{"1":{"name":"punctuation.definition.typeparameters.begin.hx"}},"endCaptures":{"1":{"name":"punctuation.definition.typeparameters.end.hx"}}},"type-path":{"patterns":[{"include":"#global"},{"include":"#punctuation-accessor"},{"include":"#type-path-type-name"}]},"type-path-package-name":{"name":"support.package.hx","match":"\\b([_A-Za-z]\\w*)\\b"},"type-path-type-name":{"name":"entity.name.type.hx","match":"\\b(_*[A-Z]\\w*)\\b"},"typedef":{"name":"meta.typedef.hx","begin":"(?=typedef)","end":"(?\u003c=\\})|(;)","patterns":[{"include":"#typedef-name"},{"include":"#typedef-name-post"},{"include":"#typedef-block"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"typedef-block":{"name":"meta.block.hx","begin":"(?\u003c=\\{)","end":"(\\})","patterns":[{"include":"#global"},{"include":"#metadata"},{"include":"#method"},{"include":"#variable"},{"include":"#modifiers"},{"include":"#punctuation-comma"},{"include":"#operator-optional"},{"include":"#typedef-extension"},{"include":"#typedef-simple-field-type-hint"},{"include":"#identifier-name"},{"include":"#strings"}],"endCaptures":{"1":{"name":"punctuation.definition.block.end.hx"}}},"typedef-extension":{"begin":"\u003e","end":",|$","patterns":[{"include":"#type"}]},"typedef-name":{"begin":"\\b(typedef)\\b","end":"([_A-Za-z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"1":{"name":"storage.type.class.hx"}},"endCaptures":{"1":{"name":"entity.name.type.class.hx"}}},"typedef-name-post":{"begin":"(?\u003c=\\w)","end":"(\\{)|(?=;)","patterns":[{"include":"#global"},{"include":"#punctuation-brackets"},{"include":"#punctuation-separator"},{"include":"#operator-assignment"},{"include":"#type"}],"endCaptures":{"1":{"name":"punctuation.definition.block.begin.hx"}}},"typedef-simple-field-type-hint":{"begin":":","end":"(?=\\}|,|;)","patterns":[{"include":"#type"}],"beginCaptures":{"0":{"name":"keyword.operator.type.annotation.hx"}}},"using":{"begin":"using\\b","end":"$|(;)","patterns":[{"include":"#type-path"},{"include":"#type-path-package-name"}],"beginCaptures":{"0":{"name":"keyword.other.using.hx"}},"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"variable":{"begin":"(?=\\b(var|final)\\b)","end":"(?=$)|(;)","patterns":[{"include":"#variable-name"},{"include":"#variable-name-next"},{"include":"#variable-assign"},{"include":"#variable-name-post"}],"endCaptures":{"1":{"name":"punctuation.terminator.hx"}}},"variable-accessors":{"name":"meta.parameters.hx","begin":"\\(","end":"\\)","patterns":[{"include":"#global"},{"include":"#keywords-accessor"},{"include":"#accessor-method"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.parameters.begin.hx"}},"endCaptures":{"0":{"name":"punctuation.definition.parameters.end.hx"}}},"variable-assign":{"begin":"=","end":"(?=;|,)","patterns":[{"include":"#block"},{"include":"#block-contents"}],"beginCaptures":{"0":{"name":"keyword.operator.assignment.hx"}}},"variable-name":{"begin":"\\b(var|final)\\b","end":"(?=$)|([_a-zA-Z]\\w*)","patterns":[{"include":"#operator-optional"}],"beginCaptures":{"1":{"name":"storage.type.variable.hx"}},"endCaptures":{"1":{"name":"variable.other.hx"}}},"variable-name-next":{"begin":",","end":"([_a-zA-Z]\\w*)","patterns":[{"include":"#global"}],"beginCaptures":{"0":{"name":"punctuation.separator.comma.hx"}},"endCaptures":{"1":{"name":"variable.other.hx"}}},"variable-name-post":{"begin":"(?\u003c=\\w)","end":"(?=;)|(?==)","patterns":[{"include":"#variable-accessors"},{"include":"#variable-type-hint"},{"include":"#block-contents"}]},"variable-type-hint":{"begin":":","end":"(?=$|;|,|=)","patterns":[{"include":"#type"}],"beginCaptures":{"0":{"name":"keyword.operator.type.annotation.hx"}}}}}