{"name":"Eiffel","scopeName":"source.eiffel","patterns":[{"begin":"(^[ \\t]+)?(?=--)","end":"(?!\\G)","patterns":[{"name":"comment.line.double-dash.eiffel","begin":"--","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.eiffel"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.eiffel"}}},{"name":"keyword.control.eiffel","match":"\\b(Indexing|indexing|deferred|expanded|class|inherit|rename|as|export|undefine|redefine|select|all|create|creation|feature|prefix|infix|separate|frozen|obsolete|local|is|unique|do|once|external|alias|require|ensure|invariant|variant|rescue|retry|like|check|if|else|elseif|then|inspect|when|from|loop|until|debug|not|or|and|xor|implies|old|end)\\b"},{"name":"variable.other.eiffel","match":"[a-zA-Z_]+"},{"name":"constant.language.eiffel","match":"\\b(True|true|False|false|Void|void|Result|result)\\b"},{"name":"meta.features.eiffel","begin":"feature","end":"end"},{"name":"meta.effective_routine_body.eiffel","begin":"(do|once)","end":"(ensure|end)"},{"name":"meta.rescue.eiffel","begin":"rescue","end":"end"},{"name":"string.quoted.double.eiffel","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.eiffel","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.eiffel"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.eiffel"}}},{"name":"constant.numeric.eiffel","match":"[0-9]+"},{"name":"storage.modifier.eiffel","match":"\\b(deferred|expanded)\\b"},{"name":"meta.definition.class.eiffel","begin":"^\\s*\n\t\t\t\t\t((?:\\b(deferred|expanded)\\b\\s*)*) # modifier\n\t\t\t\t\t(class)\\s+\n\t\t\t\t\t(\\w+)\\s* # identifier","end":"(?=end)","patterns":[{"name":"meta.definition.class.extends.java","begin":"\\b(extends)\\b\\s+","end":"(?={|implements)","patterns":[{"include":"#all-types"}],"captures":{"1":{"name":"storage.modifier.java"}}},{"name":"meta.definition.class.implements.java","begin":"\\b(implements)\\b\\s+","end":"(?={|extends)","patterns":[{"include":"#all-types"}],"captures":{"1":{"name":"storage.modifier.java"}}}],"captures":{"1":{"name":"storage.modifier.eiffel"}}}],"repository":{"number":{"match":"[0-9]+"},"variable":{"match":"[a-zA-Z0-9_]+"}}}
