{"name":"jasmin","scopeName":"source.jasmin","patterns":[{"include":"#class-def"},{"include":"#interface-def"},{"include":"#super-def"},{"include":"#implements-def"},{"include":"#method-def"},{"include":"#field-def"},{"include":"#var-def"},{"include":"#comment"},{"include":"#directive"},{"include":"#modifier"},{"include":"#type-descriptor"},{"include":"#double-string"},{"include":"#number"},{"include":"#label"},{"include":"#true-false-null"},{"include":"#control"}],"repository":{"class-def":{"begin":"(?=\\.class)","end":"$","patterns":[{"include":"#comment"},{"include":"#modifier"},{"include":"#directive"},{"match":"([\\w/]+)(?=$|\\s+(?:;.*)?$)","captures":{"1":{"name":"entity.name.type.jasmin"}}}]},"comment":{"name":"comment.line.jasmin","match":"(?\u003c=^|[ \t]);.*"},"control":{"name":"keyword.control.jasmin","match":"(?\u003c=^|\\s)return(?=$|\\s)"},"directive":{"name":"keyword.meta.directive.jasmin","match":"(?\u003c=^|\\s)\\.(?:catch|class|end method|field|implements|interface|limit|line|method|source|super|throws|var)(?=$|\\s)"},"double-string":{"begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.jasmin","match":"\\\\."},{"name":"string.double.jasmin","match":"."}],"beginCaptures":{"0":{"name":"string.begin.jasmin"}},"endCaptures":{"0":{"name":"string.end.jasmin"}}},"field-def":{"begin":"(?=\\.field)","end":"$","patterns":[{"include":"#comment"},{"include":"#modifier"},{"include":"#directive"},{"include":"#number"},{"include":"#double-string"},{"include":"#type-descriptor"},{"match":"([\\w/]+)\\s+((?:\\[+)?(?:L[/\\w_]+;|[BCDFIJSZV]))(?=(\\s+)?[=]|(\\s+)?$|\\s+;)","captures":{"1":{"name":"variable.parameter.jasmin"},"2":{"name":"storage.type.type-descriptor.jasmin"}}}]},"implements-def":{"begin":"(?=\\.implements)","end":"$","patterns":[{"include":"#comment"},{"match":"(\\.implements)\\s+([\\w/]+)","captures":{"1":{"name":"keyword.meta.directive.jasmin"},"2":{"name":"entity.other.inherited-class.jasmin"}}}]},"interface-def":{"begin":"(?=\\.interface)","end":"$","patterns":[{"include":"#comment"},{"include":"#modifier"},{"include":"#directive"},{"match":"([\\w/]+)(?=$|\\s+(?:;.*)?$)","captures":{"1":{"name":"entity.name.type.jasmin"}}}]},"label":{"name":"keyword.meta.label.jasmin","match":"^[^0-9][^=^:.\"-]*:"},"method-def":{"begin":"(?=\\.method)","end":"$","patterns":[{"include":"#comment"},{"include":"#modifier"},{"include":"#directive"},{"include":"#type-descriptor"},{"match":"([\\w/\u003c\u003e]+)(?=\\()","captures":{"1":{"name":"entity.name.function.jasmin"}}}]},"modifier":{"name":"storage.modifier.jasmin","match":"(?\u003c=^|\\s)(?:final|static|abstract|public|friend|protected|private)(?=$|\\s)"},"number":{"name":"constant.numeric.jasmin","match":"(?\u003c=^|[\\s(,=])[-+]?(?:[1-9][0-9]*|[-+]?(?:0?\\.|[1-9]\\.)[0-9]+|0x[0-9A-F]+|0)(?=$|[\\s,)=])"},"super-def":{"begin":"(?=\\.super)","end":"$","patterns":[{"include":"#comment"},{"match":"(\\.super)\\s+([\\w/]+)","captures":{"1":{"name":"keyword.meta.directive.jasmin"},"2":{"name":"entity.other.inherited-class.jasmin"}}}]},"true-false-null":{"name":"constant.language.jasmin","match":"(?\u003c=^|[\\s(,])(?:null|false|true)(?=$|[\\s,)])"},"type-descriptor":{"name":"storage.type.type-descriptor.jasmin","match":"(?\u003c=^|[\\s()=,])(?:(?:\\[+)?(?:L[/\\w_]+;|[BCDFIJSZV]))(?=$|[\\s,)=])"},"var-def":{"begin":"(?=\\.var)","end":"$","patterns":[{"include":"#comment"},{"match":"(\\.var)\\s+([1-9][0-9]*|[0])\\s+(is)\\s+([\\w_]+)\\s+((?:\\[+)?(?:L[/\\w_]+;|[BCDFIJSZV]))\\s+(from)\\s+(?:[\\w_]+)\\s+(to)\\s+(?:[\\w_]+)","captures":{"1":{"name":"keyword.meta.directive.jasmin"},"2":{"name":"constant.numeric.jasmin"},"3":{"name":"keyword.meta.is.jasmin"},"4":{"name":"variable.parameter.jasmin"},"5":{"name":"storage.type.type-descriptor.jasmin"},"6":{"name":"keyword.meta.from.jasmin"},"7":{"name":"keyword.meta.to.jasmin"}}}]}}}
