diff --git a/hlcode.YAML-tmLanguage b/hlcode.YAML-tmLanguage index 9d24c70..cae245f 100644 --- a/hlcode.YAML-tmLanguage +++ b/hlcode.YAML-tmLanguage @@ -79,7 +79,7 @@ patterns: "2": {name: keyword.hlcode} end: '^(?=\d+ functions)' patterns: - - match: '^\t(@\d+) (native) (\w+@\w+) (.*)$' + - match: '^\t(@\d+) (native) (\??\w+@\w+) (.*)$' captures: "1": {name: constant.language.hlcode} "2": {name: keyword.hlcode} @@ -135,7 +135,7 @@ patterns: patterns: - begin: '^\t([a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*) (no global)$' beginCaptures: - "1": + "1": patterns: - include: "#type-name" "2": {name: keyword.hlcode} @@ -222,9 +222,9 @@ repository: - include: "#invalid" types: patterns: - - match: '(?:ui8|ui16|[if](?:32|64)|bool|bytes|string|void|array|dyn(?:obj)?|type)(?=\b)' + - match: '(?:ui8|ui16|[if](?:32|64)|bool|bytes|string|void|dyn(?:obj)?|type)(?=\b)' name: entity.name.type.hlcode - - begin: (ref|null)(\() + - begin: (ref|null|array)(\() beginCaptures: "1": {name: entity.name.type.hlcode} "2": {name: punctuation.definition.typeparams.begin.hlcode} @@ -234,6 +234,8 @@ repository: patterns: - include: "#types" - include: "#invalid" + - match: 'array' + name: entity.name.type.hlcode - match: '(abstract)(\()([a-zA-Z_$][\w$]*)(\))' captures: "1": {name: entity.name.type.hlcode} @@ -300,7 +302,7 @@ repository: beginCaptures: "0": {name: operator.hlcode} end: " " - endCaptures: + endCaptures: "0": {name: text.hlcode} patterns: - include: "#type-name" diff --git a/hlcode.tmLanguage b/hlcode.tmLanguage index e6a9dd7..1152565 100644 --- a/hlcode.tmLanguage +++ b/hlcode.tmLanguage @@ -1 +1 @@ -nameHashLink bytecode dump filescopeNamesource.hlcodepatternsmatch^(hl) (v)(\d+)$captures1namekeyword.hlcode2nameconstant.language.hlcode3nameconstant.numeric.hlcodematch^(entry) (@\d+)$captures1namekeyword.hlcode2namesupport.function.hlcodebegin^(\d+) (strings)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?=\d+ bytes)patternsmatch^\t(@\d+) (:) (.*)$captures1nameconstant.language.hlcode2nameoperator.hlcode3namestring.hlcodeinclude#invalidbegin^(\d+) (bytes)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?=\d+ ints)patternsmatch^\t(@\d+) (:) (\d+)$captures1nameconstant.language.hlcode2nameoperator.hlcode3nameconstant.numeric.hlcodeinclude#invalidbegin^(\d+) (ints)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?=\d+ floats)patternsmatch^\t(@\d+) (:) (-?\d+)$captures1nameconstant.language.hlcode2nameoperator.hlcode3nameconstant.numeric.hlcodeinclude#invalidbegin^(\d+) (floats)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?=\d+ globals)patternsmatch^\t(@\d+) (:) (-?(?:\d+\.\d*|\.\d+))$captures1nameconstant.language.hlcode2nameoperator.hlcode3nameconstant.numeric.hlcodeinclude#invalidbegin^(\d+) (globals)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?=\d+ natives)patternsmatch^\t(@\d+) (:) (.*)$captures1nameconstant.language.hlcode2nameoperator.hlcode3patternsinclude#typesinclude#invalidinclude#invalidbegin^(\d+) (natives)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?=\d+ functions)patternsmatch^\t(@\d+) (native) (\w+@\w+) (.*)$captures1nameconstant.language.hlcode2namekeyword.hlcode3namesupport.function.hlcode4patternsinclude#typesinclude#invalidinclude#invalidbegin^(\d+) (functions)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?=\d+ objects protos)patternsbegin^\t(fun)(@\d+)(\()(\h+h)(\)) (.*)$beginCaptures1namekeyword.hlcode2namesupport.function.hlcode3namepunctuation.definition.param.begin.hlcode4nameconstant.numeric.hlcode5namepunctuation.definition.param.end.hlcode6patternsinclude#func-typeinclude#invalidend^(?=\tfun@\d+|\d+ objects protos)patternsinclude#line-commentmatch^[ \t]*(r)(\d+) (.*)$captures1namekeyword.hlcode2nameconstant.numeric.hlcode3patternsinclude#typesinclude#invalidmatch^[ \t]+(\.\d+)[ \t]+(@\h+)[ \t]+(.*)$captures1namestring.hlcode2nameconstant.numeric.hlcode3patternsinclude#opcodesinclude#invalidinclude#invalidinclude#invalidbegin^(\d+) (objects protos)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend(?=^\d+ constant values)patternsbegin^\t([a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*) (no global)$beginCaptures1patternsinclude#type-name2namekeyword.hlcodeend^(?=\t(?!\t)|\d+ constant values)patternsinclude#proto-bodybegin^\t([a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*) (@\d+)$beginCaptures1patternsinclude#type-name2nameconstant.language.hlcodeend^(?=\t(?!\t)|\d+ constant values)patternsinclude#proto-bodyinclude#invalidinclude#invalidbegin^(\d+) (constant values)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend(?=end)neverpatternsbegin^[ \t]+(@\d+) beginCaptures1nameconstant.language.hlcodeend (\[)((?:\d+(?:,\d+)*)?)(\])$endCaptures1namepunctuation.definition.brackets.begin.hlcode2patternsmatch\d+nameconstant.numeric.hlcodematch,nameoperator.hlcodeinclude#invalid3namepunctuation.definition.brackets.end.hlcodepatternsinclude#typesinclude#invalidrepositoryline-commentmatch[ \t]*;.*$namecomment.hlcodeinvalidmatch.nameinvalid.illegal.hlcodetype-namepatternsbegin@?[a-zA-Z_$][\w$]*(?=\.[a-zA-Z_$])beginCaptures0nameentity.name.type.hlcodeend(\.)([a-zA-Z_$][\w$]*)(?!\.)endCaptures1nameoperator.hlcode2nameentity.name.type.hlcodepatternsmatch(\.)([a-zA-Z_$][\w$]*)(?=\.)captures1nameoperator.hlcode2nameentity.name.type.hlcodeinclude#invalidmatch@?[A-Z_$][\w$]*(?![\w$]+[(:.])nameentity.name.type.hlcodefunc-typepatternsbegin\(beginCaptures0namepunctuation.definition.typeparams.begin.hlcodeend(\))(?=:(?:[a-zA-Z_$(]|@?\[))endCaptures0namepunctuation.definition.typeparams.end.hlcodepatternsinclude#typesmatch,nameoperator.hlcodeinclude#invalidbegin(:)(?=[a-zA-Z_$(]|@?\[)beginCaptures1nameoperator.hlcodeend(?=[),]|$)patternsinclude#typesinclude#invalidtypespatternsmatch(?:ui8|ui16|[if](?:32|64)|bool|bytes|string|void|array|dyn(?:obj)?|type)(?=\b)nameentity.name.type.hlcodebegin(ref|null)(\()beginCaptures1nameentity.name.type.hlcode2namepunctuation.definition.typeparams.begin.hlcodeend\)endCaptures0namepunctuation.definition.typeparams.end.hlcodepatternsinclude#typesinclude#invalidmatch(abstract)(\()([a-zA-Z_$][\w$]*)(\))captures1nameentity.name.type.hlcode2namepunctuation.definition.typeparams.begin.hlcode3nameentity.name.type.hlcode4namepunctuation.definition.typeparams.end.hlcodebegin(enum)(\()beginCaptures1nameentity.name.type.hlcode2namepunctuation.definition.typeparams.begin.hlcodeend\)endCaptures0namepunctuation.definition.typeparams.end.hlcodepatternsinclude#typesmatch,nameoperator.hlcodeinclude#invalidbegin(method)(:)(\()beginCaptures1nameentity.name.type.hlcode2nameoperator.hlcode3namepunctuation.definition.args.begin.hlcodeend(\))(:)(?=[a-zA-Z_$(]|@?\[)endCaptures1namepunctuation.definition.args.end.hlcode2nameoperator.hlcodepatternsinclude#typesmatch,nameoperator.hlcodeinclude#invalidinclude#func-typebegin(virtual)(\()beginCaptures1nameentity.name.type.hlcode2namepunctuation.definition.args.begin.hlcodeend\)endCaptures0namepunctuation.definition.args.end.hlcodepatternsbegin([a-zA-Z_$][\w$]*)(:)beginCaptures1namevariable.hlcode2nameoperator.hlcodeend(?=[,)])patternsinclude#typesinclude#invalidmatch,nameoperator.hlcodeinclude#invalidmatch\.{3}nameentity.name.type.hlcodeinclude#type-namebegin@?\[beginCaptures0namepunctuation.definition.obj.begin.hlcodeend\]endCaptures0namepunctuation.definition.obj.end.hlcodepatternsbegin>beginCaptures0nameoperator.hlcodeend endCaptures0nametext.hlcodepatternsinclude#type-nameinclude#invalidbegin(fields)(=)(\{)beginCaptures1namekeyword.hlcode2nameoperator.hlcode3namepunctuation.definition.fields.begin.hlcodeend\}endCaptures0namepunctuation.definition.fields.end.hlcodepatternsbegin([a-zA-Z_$][\w$]*)(:)beginCaptures1namevariable.hlcode2namekeyword.operator.hlcodeend(?=[},])patternsinclude#typesinclude#invalidmatch,nameoperator.hlcodeinclude#invalidbegin(proto)(=)(\{)beginCaptures1namekeyword.hlcode2nameoperator.hlcode3namepunctuation.definition.fields.begin.hlcodeend\}endCaptures0namepunctuation.definition.fields.end.hlcodepatternsmatch((?:virtual )?)([a-zA-Z_$][\w$]*)(@\d+)captures1namekeyword.hlcode2nameentity.name.function.hlcode3namesupport.function.hlcodematch,nameoperator.hlcodeinclude#invalidinclude#invalidopcodespatternsmatch(mov|neg|not|to(?:dyn|[su]float|int|virtual)|(?:un)?safecast|arraysize|get(?:type|tid)|enumindex|refdata) (\d+) *(,) *(\d+)$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcodematch(int|float|string|bytes) (\d+) *(,) *(@\d+)$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4nameconstant.language.hlcodematch(true|false|null(?:check)?|incr|decr|ret|new|(?:re)?throw) (\d+)$captures1namekeyword.hlcode2namevariable.hlcodematch(add|sub|mul|[su](?:div|mod|shr)|shl|and|x?or|set(?:ui8|ui16|mem)|refoffset) (\d+) *(,) *(\d+) *(,) *(\d+)$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5nameoperator.hlcode6namevariable.hlcodebegin(call) (\d+)(,) ((?:[a-zA-Z_$][\w$]*\.)*)([a-zA-Z_$][\w$]*)(\()beginCaptures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4patternsmatch[a-zA-Z_$][\w$]*(?=\.[a-zA-Z_$][\w$]*\()nameentity.name.type.hlcodebegin[a-zA-Z_$][\w$]*(?=\.)beginCaptures0nameentity.name.type.hlcodeend\.(?=[a-zA-Z_$][\w$]*\()endCaptures0nameoperator.hlcodepatternsmatch(\.)([a-zA-Z_$][\w$]*)(?![\w$]*\()captures1nameoperator.hlcode2nameentity.name.type.hlcode5nameentity.name.function.hlcode6namepunctuation.definition.params.begin.hlcodeend\)$endCaptures0namepunctuation.definition.params.end.hlcodepatternsmatch\d+namevariable.hlcodematch,nameoperator.hlcodeinclude#invalidbegin(call) (\d+)(,) (\w+@\w+)(\()beginCaptures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namesupport.function.hlcode5namepunctuation.definition.params.begin.hlcodeend\)$endCaptures0namepunctuation.definition.params.end.hlcodepatternsmatch\dnamevariable.hlcodematch,nameoperator.hlcodeinclude#invalidbegin(callmethod) (\d+)(,) (\d+)(\[)(\d+)(\])(\()beginCaptures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5namepunctuation.definition.index.begin.hlcode6nameentity.name.function.hlcode7namepunctuation.definition.index.end.hlcode8namepunctuation.definition.params.begin.hlcodeend\)$endCaptures0namepunctuation.definition.params.end.hlcodepatternsmatch\d+namevariable.hlcodematch,nameoperator.hlcodeinclude#invalidbegin(callclosure) (\d+)(,) (\d+)(\()beginCaptures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5namepunctuation.definition.params.begin.hlcodeend\)$endCaptures0namepunctuation.definition.params.end.hlcodepatternsmatch\d+namevariable.hlcodematch,nameoperator.hlcodeinclude#invalidbegin(callthis) (\d+)(,) (\[)(\d+)(\])(\()beginCaptures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namepunctuation.definition.index.begin.hlcode5nameentity.name.function.hlcode6namepunctuation.definition.index.end.hlcode7namepunctuation.definition.params.begin.hlcodeend\)$endCaptures0namepunctuation.definition.params.end.hlcodepatternsmatch\d+namevariable.hlcodematch,nameoperator.hlcodeinclude#invalidmatch(staticclosure) (\d+)(,) +([a-zA-Z_$][\w$]*)$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4nameentity.name.function.hlcodematch(instanceclosure) (\d+)(,) +([a-zA-Z_$][\w$]*)(\()(\d+)(\))$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4nameentity.name.function.hlcode5namepunctuation.definition.params.begin.hlcode6namevariable.hlcode7namepunctuation.definition.params.begin.hlcodematch(virtualclosure) (\d+)(,) *(\d+)(\[)(\d+)(\])$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5namepunctuation.definition.params.begin.hlcode6nameentity.name.function.hlcode7namepunctuation.definition.params.begin.hlcodematch(global|enumalloc) (\d+) *(,) *(\d+)$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4nameconstant.language.hlcodematch(setglobal) (\d+) *(,) *(\d+)$captures1namekeyword.hlcode2nameconstant.language.hlcode3nameoperator.hlcode4namevariable.hlcodematch(jalways) (-?\d+)$captures1namekeyword.hlcode2nameconstant.language.hlcodematch(j(?:true|false|null|notnull)|trap) (\d+) *(,) *(-?\d+)$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4nameconstant.language.hlcodematch(j(?:s[gl]te?|(?:u|not)(?:lt|gte)|eq|noteq)) (\d+) *(,) *(\d+) *(,) *(-?\d+)$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5nameoperator.hlcode6nameconstant.language.hlcodematch(get(?:ui8|ui16|mem|array)) (\d+)(,)(\d+)(\[)(\d+)(\])$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5namepunctuation.definition.index.begin.hlcode6namevariable.hlcode7namepunctuation.definition.index.end.hlcodematch(setarray) (\d+)(\[)(\d+)(\])(,)(\d+)$captures1namekeyword.hlcode2namevariable.hlcode3namepunctuation.definition.index.begin.hlcode4namevariable.hlcode5namepunctuation.definition.index.end.hlcode6nameoperator.hlcode7namevariable.hlcodematch(type) (\d+) *(,) *(.*)$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4patternsinclude#typesinclude#invalidmatch(ref) (\d+) *(,) *(&)(\d+)$captures1namekeyword.hlcode2nameconstant.language.hlcode3nameoperator.hlcode4namekeyword.operator.hlcode5namevariable.hlcodematch(unref) (\d+) *(,) *(\*)(\d+)$captures1namekeyword.hlcode2nameconstant.language.hlcode3nameoperator.hlcode4namekeyword.operator.hlcode5namevariable.hlcodematch(setref) (\*)(\d+) *(,) *(\d+)$captures1namekeyword.hlcode2namekeyword.operator.hlcode3nameconstant.language.hlcode4nameoperator.hlcode5namevariable.hlcodematch(label|assert|nop)$namekeyword.hlcodematch(field) (\d+)(,) *(\d+)(\[)(\d+)(\])$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5namepunctuation.definition.index.begin.hlcode6nameconstant.language.hlcode7namepunctuation.definition.index.begin.hlcodematch(set(?:enum)?field) (\d+)(\[)(\d+)(\])(,)(\d+)$captures1namekeyword.hlcode2namevariable.hlcode3namepunctuation.definition.index.begin.hlcode4nameconstant.language.hlcode5namepunctuation.definition.index.end.hlcode6nameoperator.hlcode7namevariable.hlcodematch(getthis) (\d+)(,) *(\[)(\d+)(\])$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namepunctuation.definition.index.begin.hlcode5nameconstant.language.hlcode6namepunctuation.definition.index.begin.hlcodematch(setthis) (\[)(\d+)(\])(,)(\d+)$captures1namekeyword.hlcode2namepunctuation.definition.index.begin.hlcode3nameconstant.language.hlcode4namepunctuation.definition.index.end.hlcode5nameoperator.hlcode6namevariable.hlcodematch(dynget) (\d+)(,) *(\d+)(\[)(@\d+)(\])$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5namepunctuation.definition.index.begin.hlcode6nameconstant.language.hlcode7namepunctuation.definition.index.begin.hlcodematch(dynset) (\d+)(\[)(@\d+)(\])(,)(\d+)$captures1namekeyword.hlcode2namevariable.hlcode3namepunctuation.definition.index.begin.hlcode4nameconstant.language.hlcode5namepunctuation.definition.index.end.hlcode6nameoperator.hlcode7namevariable.hlcodebegin(makeenum) (\d+)(,) (\d+)(\()beginCaptures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4nameconstant.language.hlcode5namepunctuation.definition.params.begin.hlcodeend\)$endCaptures0namepunctuation.definition.params.end.hlcodepatternsmatch\d+namevariable.hlcodematch,nameoperator.hlcodeinclude#invalidmatch(enumfield) (\d+)(,) *(\d+)(\[)(\d+)(:)(\d+)(\])$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5namepunctuation.definition.index.begin.hlcode6nameconstant.language.hlcode7nameoperator.hlcode8nameconstant.language.hlcode9namepunctuation.definition.index.end.hlcodebegin(switch) (\d+) (\[)beginCaptures1namekeyword.hlcode2namevariable.hlcode3namepunctuation.definition.indices.begin.hlcodeend(\]) (\d+)$endCaptures1namepunctuation.definition.indices.end.hlcode2nameconstant.language.hlcodepatternsmatch\d+namevariable.hlcodematch,nameoperator.hlcodeinclude#invalidmatch(endtrap) (true|false)$captures1namekeyword.hlcode2nameconstant.language.hlcodeproto-bodypatternsmatch^\t{2}(extends) (.*)$captures1namekeyword.hlcode2patternsinclude#typesinclude#invalidbegin^\t{2}(\d+) (fields)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?!\t{2} {2})patternsmatch^\t{2} {2}(@\d+) ([a-zA-Z_$][\w$]*) (.*)$captures1nameconstant.language.hlcode2namevariable.hlcode3patternsinclude#typesinclude#invalidinclude#invalidbegin^\t{2}(\d+) (methods)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?!\t{2} {2})patternsmatch^\t{2} {2}(@\d+) ([a-zA-Z_$][\w$]*) (fun)(@\d+)(?:(\[)(\d+)(\]))?$captures1nameconstant.language.hlcode2nameentity.name.function.hlcode3namekeyword.hlcode4namesupport.function.hlcode5namepunctuation.definition.index.begin.hlcode6nameentity.name.function.hlcode7namepunctuation.definition.index.end.hlcodeinclude#invalidbegin^\t{2}(\d+) (bindings)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?!\t{2} {2})patternsmatch^\t{2} {2}(@\d+) (fun)(@\d+)$captures1nameconstant.language.hlcode2namekeyword.hlcode3namesupport.function.hlcodeinclude#invalidinclude#illegal \ No newline at end of file +nameHashLink bytecode dump filescopeNamesource.hlcodepatternsmatch^(hl) (v)(\d+)$captures1namekeyword.hlcode2nameconstant.language.hlcode3nameconstant.numeric.hlcodematch^(entry) (@\d+)$captures1namekeyword.hlcode2namesupport.function.hlcodebegin^(\d+) (strings)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?=\d+ bytes)patternsmatch^\t(@\d+) (:) (.*)$captures1nameconstant.language.hlcode2nameoperator.hlcode3namestring.hlcodeinclude#invalidbegin^(\d+) (bytes)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?=\d+ ints)patternsmatch^\t(@\d+) (:) (\d+)$captures1nameconstant.language.hlcode2nameoperator.hlcode3nameconstant.numeric.hlcodeinclude#invalidbegin^(\d+) (ints)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?=\d+ floats)patternsmatch^\t(@\d+) (:) (-?\d+)$captures1nameconstant.language.hlcode2nameoperator.hlcode3nameconstant.numeric.hlcodeinclude#invalidbegin^(\d+) (floats)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?=\d+ globals)patternsmatch^\t(@\d+) (:) (-?(?:\d+\.\d*|\.\d+))$captures1nameconstant.language.hlcode2nameoperator.hlcode3nameconstant.numeric.hlcodeinclude#invalidbegin^(\d+) (globals)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?=\d+ natives)patternsmatch^\t(@\d+) (:) (.*)$captures1nameconstant.language.hlcode2nameoperator.hlcode3patternsinclude#typesinclude#invalidinclude#invalidbegin^(\d+) (natives)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?=\d+ functions)patternsmatch^\t(@\d+) (native) (\??\w+@\w+) (.*)$captures1nameconstant.language.hlcode2namekeyword.hlcode3namesupport.function.hlcode4patternsinclude#typesinclude#invalidinclude#invalidbegin^(\d+) (functions)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?=\d+ objects protos)patternsbegin^\t(fun)(@\d+)(\()(\h+h)(\)) (.*)$beginCaptures1namekeyword.hlcode2namesupport.function.hlcode3namepunctuation.definition.param.begin.hlcode4nameconstant.numeric.hlcode5namepunctuation.definition.param.end.hlcode6patternsinclude#func-typeinclude#invalidend^(?=\tfun@\d+|\d+ objects protos)patternsinclude#line-commentmatch^[ \t]*(r)(\d+) (.*)$captures1namekeyword.hlcode2nameconstant.numeric.hlcode3patternsinclude#typesinclude#invalidmatch^[ \t]+(\.\d+)[ \t]+(@\h+)[ \t]+(.*)$captures1namestring.hlcode2nameconstant.numeric.hlcode3patternsinclude#opcodesinclude#invalidinclude#invalidinclude#invalidbegin^(\d+) (objects protos)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend(?=^\d+ constant values)patternsbegin^\t([a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*) (no global)$beginCaptures1patternsinclude#type-name2namekeyword.hlcodeend^(?=\t(?!\t)|\d+ constant values)patternsinclude#proto-bodybegin^\t([a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*) (@\d+)$beginCaptures1patternsinclude#type-name2nameconstant.language.hlcodeend^(?=\t(?!\t)|\d+ constant values)patternsinclude#proto-bodyinclude#invalidinclude#invalidbegin^(\d+) (constant values)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend(?=end)neverpatternsbegin^[ \t]+(@\d+) beginCaptures1nameconstant.language.hlcodeend (\[)((?:\d+(?:,\d+)*)?)(\])$endCaptures1namepunctuation.definition.brackets.begin.hlcode2patternsmatch\d+nameconstant.numeric.hlcodematch,nameoperator.hlcodeinclude#invalid3namepunctuation.definition.brackets.end.hlcodepatternsinclude#typesinclude#invalidrepositoryline-commentmatch[ \t]*;.*$namecomment.hlcodeinvalidmatch.nameinvalid.illegal.hlcodetype-namepatternsbegin@?[a-zA-Z_$][\w$]*(?=\.[a-zA-Z_$])beginCaptures0nameentity.name.type.hlcodeend(\.)([a-zA-Z_$][\w$]*)(?!\.)endCaptures1nameoperator.hlcode2nameentity.name.type.hlcodepatternsmatch(\.)([a-zA-Z_$][\w$]*)(?=\.)captures1nameoperator.hlcode2nameentity.name.type.hlcodeinclude#invalidmatch@?[A-Z_$][\w$]*(?![\w$]+[(:.])nameentity.name.type.hlcodefunc-typepatternsbegin\(beginCaptures0namepunctuation.definition.typeparams.begin.hlcodeend(\))(?=:(?:[a-zA-Z_$(]|@?\[))endCaptures0namepunctuation.definition.typeparams.end.hlcodepatternsinclude#typesmatch,nameoperator.hlcodeinclude#invalidbegin(:)(?=[a-zA-Z_$(]|@?\[)beginCaptures1nameoperator.hlcodeend(?=[),]|$)patternsinclude#typesinclude#invalidtypespatternsmatch(?:ui8|ui16|[if](?:32|64)|bool|bytes|string|void|dyn(?:obj)?|type)(?=\b)nameentity.name.type.hlcodebegin(ref|null|array)(\()beginCaptures1nameentity.name.type.hlcode2namepunctuation.definition.typeparams.begin.hlcodeend\)endCaptures0namepunctuation.definition.typeparams.end.hlcodepatternsinclude#typesinclude#invalidmatcharraynameentity.name.type.hlcodematch(abstract)(\()([a-zA-Z_$][\w$]*)(\))captures1nameentity.name.type.hlcode2namepunctuation.definition.typeparams.begin.hlcode3nameentity.name.type.hlcode4namepunctuation.definition.typeparams.end.hlcodebegin(enum)(\()beginCaptures1nameentity.name.type.hlcode2namepunctuation.definition.typeparams.begin.hlcodeend\)endCaptures0namepunctuation.definition.typeparams.end.hlcodepatternsinclude#typesmatch,nameoperator.hlcodeinclude#invalidbegin(method)(:)(\()beginCaptures1nameentity.name.type.hlcode2nameoperator.hlcode3namepunctuation.definition.args.begin.hlcodeend(\))(:)(?=[a-zA-Z_$(]|@?\[)endCaptures1namepunctuation.definition.args.end.hlcode2nameoperator.hlcodepatternsinclude#typesmatch,nameoperator.hlcodeinclude#invalidinclude#func-typebegin(virtual)(\()beginCaptures1nameentity.name.type.hlcode2namepunctuation.definition.args.begin.hlcodeend\)endCaptures0namepunctuation.definition.args.end.hlcodepatternsbegin([a-zA-Z_$][\w$]*)(:)beginCaptures1namevariable.hlcode2nameoperator.hlcodeend(?=[,)])patternsinclude#typesinclude#invalidmatch,nameoperator.hlcodeinclude#invalidmatch\.{3}nameentity.name.type.hlcodeinclude#type-namebegin@?\[beginCaptures0namepunctuation.definition.obj.begin.hlcodeend\]endCaptures0namepunctuation.definition.obj.end.hlcodepatternsbegin>beginCaptures0nameoperator.hlcodeend endCaptures0nametext.hlcodepatternsinclude#type-nameinclude#invalidbegin(fields)(=)(\{)beginCaptures1namekeyword.hlcode2nameoperator.hlcode3namepunctuation.definition.fields.begin.hlcodeend\}endCaptures0namepunctuation.definition.fields.end.hlcodepatternsbegin([a-zA-Z_$][\w$]*)(:)beginCaptures1namevariable.hlcode2namekeyword.operator.hlcodeend(?=[},])patternsinclude#typesinclude#invalidmatch,nameoperator.hlcodeinclude#invalidbegin(proto)(=)(\{)beginCaptures1namekeyword.hlcode2nameoperator.hlcode3namepunctuation.definition.fields.begin.hlcodeend\}endCaptures0namepunctuation.definition.fields.end.hlcodepatternsmatch((?:virtual )?)([a-zA-Z_$][\w$]*)(@\d+)captures1namekeyword.hlcode2nameentity.name.function.hlcode3namesupport.function.hlcodematch,nameoperator.hlcodeinclude#invalidinclude#invalidopcodespatternsmatch(mov|neg|not|to(?:dyn|[su]float|int|virtual)|(?:un)?safecast|arraysize|get(?:type|tid)|enumindex|refdata) (\d+) *(,) *(\d+)$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcodematch(int|float|string|bytes) (\d+) *(,) *(@\d+)$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4nameconstant.language.hlcodematch(true|false|null(?:check)?|incr|decr|ret|new|(?:re)?throw) (\d+)$captures1namekeyword.hlcode2namevariable.hlcodematch(add|sub|mul|[su](?:div|mod|shr)|shl|and|x?or|set(?:ui8|ui16|mem)|refoffset) (\d+) *(,) *(\d+) *(,) *(\d+)$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5nameoperator.hlcode6namevariable.hlcodebegin(call) (\d+)(,) ((?:[a-zA-Z_$][\w$]*\.)*)([a-zA-Z_$][\w$]*)(\()beginCaptures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4patternsmatch[a-zA-Z_$][\w$]*(?=\.[a-zA-Z_$][\w$]*\()nameentity.name.type.hlcodebegin[a-zA-Z_$][\w$]*(?=\.)beginCaptures0nameentity.name.type.hlcodeend\.(?=[a-zA-Z_$][\w$]*\()endCaptures0nameoperator.hlcodepatternsmatch(\.)([a-zA-Z_$][\w$]*)(?![\w$]*\()captures1nameoperator.hlcode2nameentity.name.type.hlcode5nameentity.name.function.hlcode6namepunctuation.definition.params.begin.hlcodeend\)$endCaptures0namepunctuation.definition.params.end.hlcodepatternsmatch\d+namevariable.hlcodematch,nameoperator.hlcodeinclude#invalidbegin(call) (\d+)(,) (\w+@\w+)(\()beginCaptures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namesupport.function.hlcode5namepunctuation.definition.params.begin.hlcodeend\)$endCaptures0namepunctuation.definition.params.end.hlcodepatternsmatch\dnamevariable.hlcodematch,nameoperator.hlcodeinclude#invalidbegin(callmethod) (\d+)(,) (\d+)(\[)(\d+)(\])(\()beginCaptures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5namepunctuation.definition.index.begin.hlcode6nameentity.name.function.hlcode7namepunctuation.definition.index.end.hlcode8namepunctuation.definition.params.begin.hlcodeend\)$endCaptures0namepunctuation.definition.params.end.hlcodepatternsmatch\d+namevariable.hlcodematch,nameoperator.hlcodeinclude#invalidbegin(callclosure) (\d+)(,) (\d+)(\()beginCaptures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5namepunctuation.definition.params.begin.hlcodeend\)$endCaptures0namepunctuation.definition.params.end.hlcodepatternsmatch\d+namevariable.hlcodematch,nameoperator.hlcodeinclude#invalidbegin(callthis) (\d+)(,) (\[)(\d+)(\])(\()beginCaptures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namepunctuation.definition.index.begin.hlcode5nameentity.name.function.hlcode6namepunctuation.definition.index.end.hlcode7namepunctuation.definition.params.begin.hlcodeend\)$endCaptures0namepunctuation.definition.params.end.hlcodepatternsmatch\d+namevariable.hlcodematch,nameoperator.hlcodeinclude#invalidmatch(staticclosure) (\d+)(,) +([a-zA-Z_$][\w$]*)$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4nameentity.name.function.hlcodematch(instanceclosure) (\d+)(,) +([a-zA-Z_$][\w$]*)(\()(\d+)(\))$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4nameentity.name.function.hlcode5namepunctuation.definition.params.begin.hlcode6namevariable.hlcode7namepunctuation.definition.params.begin.hlcodematch(virtualclosure) (\d+)(,) *(\d+)(\[)(\d+)(\])$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5namepunctuation.definition.params.begin.hlcode6nameentity.name.function.hlcode7namepunctuation.definition.params.begin.hlcodematch(global|enumalloc) (\d+) *(,) *(\d+)$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4nameconstant.language.hlcodematch(setglobal) (\d+) *(,) *(\d+)$captures1namekeyword.hlcode2nameconstant.language.hlcode3nameoperator.hlcode4namevariable.hlcodematch(jalways) (-?\d+)$captures1namekeyword.hlcode2nameconstant.language.hlcodematch(j(?:true|false|null|notnull)|trap) (\d+) *(,) *(-?\d+)$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4nameconstant.language.hlcodematch(j(?:s[gl]te?|(?:u|not)(?:lt|gte)|eq|noteq)) (\d+) *(,) *(\d+) *(,) *(-?\d+)$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5nameoperator.hlcode6nameconstant.language.hlcodematch(get(?:ui8|ui16|mem|array)) (\d+)(,)(\d+)(\[)(\d+)(\])$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5namepunctuation.definition.index.begin.hlcode6namevariable.hlcode7namepunctuation.definition.index.end.hlcodematch(setarray) (\d+)(\[)(\d+)(\])(,)(\d+)$captures1namekeyword.hlcode2namevariable.hlcode3namepunctuation.definition.index.begin.hlcode4namevariable.hlcode5namepunctuation.definition.index.end.hlcode6nameoperator.hlcode7namevariable.hlcodematch(type) (\d+) *(,) *(.*)$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4patternsinclude#typesinclude#invalidmatch(ref) (\d+) *(,) *(&)(\d+)$captures1namekeyword.hlcode2nameconstant.language.hlcode3nameoperator.hlcode4namekeyword.operator.hlcode5namevariable.hlcodematch(unref) (\d+) *(,) *(\*)(\d+)$captures1namekeyword.hlcode2nameconstant.language.hlcode3nameoperator.hlcode4namekeyword.operator.hlcode5namevariable.hlcodematch(setref) (\*)(\d+) *(,) *(\d+)$captures1namekeyword.hlcode2namekeyword.operator.hlcode3nameconstant.language.hlcode4nameoperator.hlcode5namevariable.hlcodematch(label|assert|nop)$namekeyword.hlcodematch(field) (\d+)(,) *(\d+)(\[)(\d+)(\])$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5namepunctuation.definition.index.begin.hlcode6nameconstant.language.hlcode7namepunctuation.definition.index.begin.hlcodematch(set(?:enum)?field) (\d+)(\[)(\d+)(\])(,)(\d+)$captures1namekeyword.hlcode2namevariable.hlcode3namepunctuation.definition.index.begin.hlcode4nameconstant.language.hlcode5namepunctuation.definition.index.end.hlcode6nameoperator.hlcode7namevariable.hlcodematch(getthis) (\d+)(,) *(\[)(\d+)(\])$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namepunctuation.definition.index.begin.hlcode5nameconstant.language.hlcode6namepunctuation.definition.index.begin.hlcodematch(setthis) (\[)(\d+)(\])(,)(\d+)$captures1namekeyword.hlcode2namepunctuation.definition.index.begin.hlcode3nameconstant.language.hlcode4namepunctuation.definition.index.end.hlcode5nameoperator.hlcode6namevariable.hlcodematch(dynget) (\d+)(,) *(\d+)(\[)(@\d+)(\])$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5namepunctuation.definition.index.begin.hlcode6nameconstant.language.hlcode7namepunctuation.definition.index.begin.hlcodematch(dynset) (\d+)(\[)(@\d+)(\])(,)(\d+)$captures1namekeyword.hlcode2namevariable.hlcode3namepunctuation.definition.index.begin.hlcode4nameconstant.language.hlcode5namepunctuation.definition.index.end.hlcode6nameoperator.hlcode7namevariable.hlcodebegin(makeenum) (\d+)(,) (\d+)(\()beginCaptures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4nameconstant.language.hlcode5namepunctuation.definition.params.begin.hlcodeend\)$endCaptures0namepunctuation.definition.params.end.hlcodepatternsmatch\d+namevariable.hlcodematch,nameoperator.hlcodeinclude#invalidmatch(enumfield) (\d+)(,) *(\d+)(\[)(\d+)(:)(\d+)(\])$captures1namekeyword.hlcode2namevariable.hlcode3nameoperator.hlcode4namevariable.hlcode5namepunctuation.definition.index.begin.hlcode6nameconstant.language.hlcode7nameoperator.hlcode8nameconstant.language.hlcode9namepunctuation.definition.index.end.hlcodebegin(switch) (\d+) (\[)beginCaptures1namekeyword.hlcode2namevariable.hlcode3namepunctuation.definition.indices.begin.hlcodeend(\]) (\d+)$endCaptures1namepunctuation.definition.indices.end.hlcode2nameconstant.language.hlcodepatternsmatch\d+namevariable.hlcodematch,nameoperator.hlcodeinclude#invalidmatch(endtrap) (true|false)$captures1namekeyword.hlcode2nameconstant.language.hlcodeproto-bodypatternsmatch^\t{2}(extends) (.*)$captures1namekeyword.hlcode2patternsinclude#typesinclude#invalidbegin^\t{2}(\d+) (fields)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?!\t{2} {2})patternsmatch^\t{2} {2}(@\d+) ([a-zA-Z_$][\w$]*) (.*)$captures1nameconstant.language.hlcode2namevariable.hlcode3patternsinclude#typesinclude#invalidinclude#invalidbegin^\t{2}(\d+) (methods)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?!\t{2} {2})patternsmatch^\t{2} {2}(@\d+) ([a-zA-Z_$][\w$]*) (fun)(@\d+)(?:(\[)(\d+)(\]))?$captures1nameconstant.language.hlcode2nameentity.name.function.hlcode3namekeyword.hlcode4namesupport.function.hlcode5namepunctuation.definition.index.begin.hlcode6nameentity.name.function.hlcode7namepunctuation.definition.index.end.hlcodeinclude#invalidbegin^\t{2}(\d+) (bindings)$beginCaptures1nameconstant.numeric.hlcode2namekeyword.hlcodeend^(?!\t{2} {2})patternsmatch^\t{2} {2}(@\d+) (fun)(@\d+)$captures1nameconstant.language.hlcode2namekeyword.hlcode3namesupport.function.hlcodeinclude#invalidinclude#illegal \ No newline at end of file